Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(aws): update spec #2519

Conversation

withfig-bot
Copy link
Collaborator

Automated PR for latest AWS CLI release by https://github.com/withfig/aws-cli-plugin

@withfig-bot
Copy link
Collaborator Author

Overview

src/aws/bedrock-agent-runtime.ts:

Info:

src/aws/appconfig.ts:

Info:

src/aws/bedrock-runtime.ts:

Info:

src/aws/b2bi.ts:

Info:

src/aws/geo-maps.ts:

Info:

src/aws/geo-places.ts:

Info:

src/aws/iot-jobs-data.ts:

Info:

src/aws/bedrock.ts:

Info:

src/aws/application-signals.ts:

Info:

src/aws/ssm-quicksetup.ts:

Info:

src/aws/observabilityadmin.ts:

Info:

src/aws/discovery.ts:

Info:

URLs:

  • https://s3.us-west-2.amazonaws.com/templates-7cffcf56-bd96-4b1c-b45b-a5b42f282e46/import_template.csv.

src/aws/internetmonitor.ts:

Info:

src/aws/mwaa.ts:

Info:

src/aws/geo-routes.ts:

Info:

src/aws/rbin.ts:

Info:

src/aws/notificationscontacts.ts:

Info:

src/aws/accessanalyzer.ts:

Info:

src/aws/license-manager-user-subscriptions.ts:

Info:

src/aws/chatbot.ts:

Info:

src/aws/health.ts:

Info:

src/aws/invoicing.ts:

Info:

URLs:

  • https://invoicing.us-east-1.api.aws

src/aws/taxsettings.ts:

Info:

URLs:

  • https://tax.us-east-1.amazonaws.com

src/aws/billing.ts:

Info:

URLs:

  • https://billing.us-east-1.api.aws

src/aws/application-autoscaling.ts:

Info:

URLs:

  • https://www.joda.org/joda-time/timezones.html

src/aws/controltower.ts:

Info:

src/aws/efs.ts:

Info:

src/aws/mediapackagev2.ts:

Info:

src/aws/timestream-query.ts:

Info:

src/aws/keyspaces.ts:

Info:

src/aws/compute-optimizer.ts:

Info:

src/aws/codepipeline.ts:

Info:

src/aws/qapps.ts:

Info:

src/aws/notifications.ts:

Info:

src/aws/connectcampaignsv2.ts:

Info:

src/aws/ivs.ts:

Info:

URLs:

  • https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin.
  • https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin.

src/aws/neptune-graph.ts:

Info:

src/aws/networkflowmonitor.ts:

Info:

src/aws/elbv2.ts:

Info:

src/aws/inspector2.ts:

Info:

src/aws/bcm-pricing-calculator.ts:

Info:

URLs:

  • https://bcm-pricing-calculator.us-east-1.api.aws

src/aws/security-ir.ts:

Info:

src/aws/mediaconvert.ts:

Info:

URLs:

  • http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html
  • https://docs.aws.amazon.com/mediaconvert/latest/apireference/idempotency.html
  • https://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html
  • https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html
  • http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html
  • http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html
  • https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-queues.html
  • http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html
  • http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html
  • https://docs.aws.amazon.com/mediaconvert/latest/ug/tagging-resources.html
  • https://docs.aws.amazon.com/mediaconvert/latest/ug/tagging-resources.html

src/aws/chime-sdk-voice.ts:

Info:

src/aws/sts.ts:

Info:

src/aws/xray.ts:

Info:

src/aws/partnercentral-selling.ts:

Info:

src/aws/cleanrooms.ts:

Info:

src/aws/ce.ts:

Info:

URLs:

  • https://ce.us-east-1.amazonaws.com

src/aws/bedrock-agent.ts:

Info:

src/aws/datasync.ts:

Info:

src/aws/fsx.ts:

Info:

src/aws/customer-profiles.ts:

Info:

src/aws/memorydb.ts:

Info:

src/aws/iotfleetwise.ts:

Info:

src/aws/cloudtrail.ts:

Info:

src/aws/workspaces-web.ts:

Info:

src/aws/qbusiness.ts:

Info:

URLs:

  • https://docs.aws.amazon.com
  • https://docs.aws.amazon.com

src/aws/sns.ts:

Info:

src/aws/opensearch.ts:

Info:

src/aws/vpc-lattice.ts:

Info:

src/aws/events.ts:

Info:

URLs:

  • https://abcde.veo.endpoints.event.amazonaws.com

src/aws/imagebuilder.ts:

Info:

URLs:

  • https://docs.aws.amazon.com//ram/latest/APIReference/API_CreateResourceShare.html)

src/aws/resiliencehub.ts:

Info:

src/aws/networkmanager.ts:

Info:

src/aws/stepfunctions.ts:

Info:

src/aws/cloudwatch.ts:

Info:

Single Functions:

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "list-metrics",
        ["--namespace"],
        "Metrics",
        "MetricName"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      return listDimensionTypes(
        tokens,
        executeShellCommand,
        "list-metrics",
        "--namespace",
        "Metrics",
        "Dimensions"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      return listDimensionTypes(
        tokens,
        executeShellCommand,
        "describe-anomaly-detectors",
        "--namespace",
        "AnomalyDetectors",
        "Dimensions"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "describe-anomaly-detectors",
        ["--namespace", "--metric-name"],
        "AnomalyDetectors",
        "Stat"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      // get list of stream names
      const result = await getResultList(
        tokens,
        executeShellCommand,
        ["firehose", "list-delivery-streams"],
        "DeliveryStreamNames"
      );
      // construct "query"
      const objects = result.flat().map((stream) => {
        return {
          command: [
            "firehose",
            "describe-delivery-stream",
            "--delivery-stream-name",
            Array.isArray(stream.name) ? stream.name[0] : stream.name,
          ],
          parentKey: "DeliveryStreamDescription",
          childKey: "DeliveryStreamARN",
        };
      });
      // Fire up multiple API calls
      return MultiSuggestionsGenerator(tokens, executeShellCommand, [
        ...objects,
      ]);
    }

src/aws/autoscaling.ts:

Info:

URLs:

  • https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_AttachTrafficSources.html
  • https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

src/aws/apigateway.ts:

Info:

src/aws/omics.ts:

Info:

src/aws/workspaces.ts:

Info:

src/aws/iotwireless.ts:

Info:

src/aws/route53resolver.ts:

Info:

src/aws/organizations.ts:

Info:

URLs:

  • https://organizations.us-east-1.amazonaws.com

src/aws/qconnect.ts:

Info:

URLs:

  • https://myInstanceName.lightning.force.com/lightning/r/Knowledge__kav/

src/aws/cloudfront.ts:

Info:

src/aws/pinpoint-sms-voice-v2.ts:

Info:

src/aws/configservice.ts:

Info:

src/aws/iotsitewise.ts:

Info:

src/aws/eks.ts:

Info:

Single Functions:

postProcess:

 function (out) {
      try {
        const list = JSON.parse(out)["Keys"];
        return list.map((key) => {
          return {
            name: `resources=secrets,provider={keyArn=${key["KeyArn"]}}`,
            icon: "fig://icon?type=aws",
          };
        });
      } catch (e) {
        console.log(e);
      }
      return [];
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "list-addons",
        ["--cluster-name"],
        "addons"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "list-fargate-profiles",
        ["--cluster-name"],
        "fargateProfileNames"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "list-nodegroups",
        ["--cluster-name"],
        "nodegroups"
      );
    }

URLs:

  • https://docs.aws.amazon.com/eks/latest/userguide/eks-connector.htmlconnected
  • https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html

src/aws/transfer.ts:

Info:

URLs:

  • https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.
  • https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.

src/aws/s3control.ts:

Info:

src/aws/dynamodb.ts:

Info:

src/aws/lambda.ts:

Info:

Single Functions:

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "list-layer-versions",
        ["--layer-name"],
        "LayerVersions",
        "Version"
      );
    }

postProcess:

 function (out, tokens) {
      try {
        const accountId = JSON.parse(out)["Account"];
        return [{ name: accountId }, { name: "*" }];
      } catch (error) {
        console.error(error);
      }
      return [];
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "get-layer-version-policy",
        ["--layer-name", "--version-number"],
        "RevisionId"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "get-policy",
        ["--function-name"],
        "RevisionId"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "get-function",
        ["--function-name"],
        "Configuration",
        "RevisionId"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "list-aliases",
        ["--function-name"],
        "Aliases",
        "Name"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      try {
        const idx = tokens.indexOf("--function-name");
        const args = [
          "lambda",
          "list-versions-by-function",
          "--function-name",
          tokens[idx + 1],
        ];
        const { stdout } = await executeShellCommand({
          command: "aws",
          args,
        });
        const list = JSON.parse(stdout)["Versions"];
        return list
          .filter((elm) => elm.Version !== "$LATEST")
          .map((elm) => {
            const version = elm["Version"];
            return {
              insertValue: version,
              name: version,
              displayName: `version: ${version}`,
              icon: "fig://icon?type=aws",
            };
          });
      } catch (e) {
        console.log(e);
      }
      return [];
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomSIDGenerator(tokens, executeShellCommand, "get-policy", [
        "--function-name",
      ]);
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomSIDGenerator(
        tokens,
        executeShellCommand,
        "get-layer-version-policy",
        ["--layer-name", "--version-number"]
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      // Getting sqs queues is implemented, although it has a huge performance toll.
      // It seems Fig rejects long-running promises after a time.
      // I am currently investigating if this is the case.
      // const result = await Promise.all([
      //   getResultList(tokens, executeShellCommand, "aws sqs list-queues", "QueueUrls"),
      //   getResultList(tokens, executeShellCommand, "aws kinesis list-streams", "StreamNames")
      // ]);
      // const objects = result.flat().map((elm) => {
      //   if (elm.includes("sqs")) {
      //     return ({
      //       command: `aws sqs get-queue-attributes --queue-url ${elm} --attribute-names QueueArn`,
      //       parentKey: "Attributes",
      //       childKey: "QueueArn",
      //     })
      //   }
      //   return ({
      //     command: `aws kinesis describe-stream --stream-name ${elm}`,
      //     parentKey: "StreamDescription",
      //     childKey: "StreamARN",
      //   })
      // });
      return MultiSuggestionsGenerator(tokens, executeShellCommand, [
        {
          command: ["dynamodbstreams", "list-streams"],
          parentKey: "Streams",
          childKey: "StreamArn",
        },
        {
          command: ["kafka", "list-clusters"],
          parentKey: "ClusterInfoList",
          childKey: "ClusterArn",
        },
        //...objects,
      ]);
    }

custom:

 async function (tokens, executeShellCommand) {
      // Getting sqs queues is implemented, although it has a huge performance toll.
      // It seems Fig rejects long-running promises after a time.
      // I am currently investigating if this is the case.
      // const out = await executeShellCommand("aws sqs list-queues");
      // const list = JSON.parse(out)["QueueUrls"];
      // const sqsObjects = list.map((url) => ({
      //   command: `aws sqs get-queue-attributes --queue-url ${url} --attribute-names QueueArn`,
      //   parentKey: "Attributes",
      //   childKey: "QueueArn",
      // }));
      return MultiSuggestionsGenerator(tokens, executeShellCommand, [
        {
          command: ["sns", "list-topics"],
          parentKey: "Topics",
          childKey: "TopicArn",
        },
        {
          command: ["events", "list-event-buses"],
          parentKey: "EventBuses",
          childKey: "Arn",
        },
        {
          command: ["lambda", "list-functions"],
          parentKey: "Functions",
          childKey: "FunctionArn",
        },
        // ...sqsObjects,
      ]);
    }

postProcess:

 function (out) {
      return postPrecessGenerator(out, "Roles", "RoleName");
    }

postProcess:

 function (out) {
      return postPrecessGenerator(out, "Keys", "KeyArn");
    }

postProcess:

 function (out) {
      return postPrecessGenerator(out, "Layers", "LayerArn");
    }

postProcess:

 function (out) {
      try {
        const list = JSON.parse(out)["Layers"];
        return list.map((elm) => {
          return {
            name: elm["LatestMatchingVersion"]["LayerVersionArn"],
            icon: "fig://icon?type=aws",
          };
        });
      } catch (e) {
        console.log(e);
      }
      return [];
    }

postProcess:

 function (out) {
      try {
        const list = JSON.parse(out)["FileSystems"];
        return list.map((elm) => {
          const name = ("FileSystemArn" ? elm["FileSystemArn"] : elm) as string;
          return {
            name: `Arn=${name},LocalMountPath=/mnt/`,
            icon: "fig://icon?type=aws",
          };
        });
      } catch (e) {
        console.log(e);
      }
      return [];
    }

postProcess:

 function (out) {
      return postPrecessGenerator(
        out,
        "CodeSigningConfigs",
        "CodeSigningConfigArn"
      );
    }

postProcess:

 function (out) {
      return postPrecessGenerator(out, "EventSourceMappings", "UUID");
    }

postProcess:

 function (out) {
      return postPrecessGenerator(out, "Functions", "CodeSha256");
    }

postProcess:

 function (out, tokens) {
      try {
        return out.split("\n").map((line) => {
          const parts = line.split(/\s+/);
          // sub prefix
          if (!parts.length) {
            return [];
          }
          return {
            name: parts[parts.length - 1],
          };
        }) as Fig.Suggestion[];
      } catch (error) {
        console.error(error);
      }
      return [];
    }

custom:

 async function (tokens, executeShellCommand) {
      try {
        const idx = tokens.indexOf("--s3-bucket");
        const args = [
          "s3",
          "ls",
          `${_prefixS3}${tokens[idx + 1]}`,
          "--recursive",
          "--page-size",
          "1000",
        ];
        const { stdout } = await executeShellCommand({
          command: "aws",
          args,
        });
        if (stdout == "") {
          return [];
        }
        if (stdout.trim() === _prefixS3) {
          return [
            {
              name: _prefixS3,
              insertValue: _prefixS3,
            },
          ];
        }
        return stdout.split("\n").map((line) => {
          const parts = line.split(/\s+/);
          // sub prefix
          if (!parts.length) {
            return [];
          }
          return {
            name: parts[parts.length - 1],
          };
        }) as Fig.Suggestion[];
      } catch (error) {
        console.error(error);
      }
      return [];
    }

custom:

 async function (tokens, executeShellCommand) {
      try {
        const bucketIdx = tokens.indexOf("--s3-bucket");
        const objectIdx = tokens.indexOf("--s3-key");
        const args = [
          "s3api",
          "list-object-versions",
          "--bucket",
          tokens[bucketIdx + 1],
          "--prefix",
          tokens[objectIdx + 1],
        ];
        const { stdout } = await executeShellCommand({
          command: "aws",
          args,
        });
        if (stdout == "") {
          return [];
        }
        if (stdout.trim() === _prefixS3) {
          return [
            {
              name: _prefixS3,
              insertValue: _prefixS3,
            },
          ];
        }
        const list = JSON.parse(stdout)["Versions"];
        return list
          .filter((elm) => elm["VersionId"] !== "null")
          .map((elm) => {
            return {
              name: elm["VersionId"],
              icon: "fig://icon?type=aws",
            };
          });
      } catch (e) {
        console.log(e);
      }
      return [];
    }

URLs:

  • https://opensource.org/licenses/MIT.

src/aws/logs.ts:

Info:

URLs:

  • https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html.

src/aws/datazone.ts:

Info:

src/aws/ecs.ts:

Info:

URLs:

  • http://169.254.169.254/latest/dynamic/instance-identity/document/
  • http://169.254.169.254/latest/dynamic/instance-identity/signature/

src/aws/elasticache.ts:

Info:

URLs:

  • http://aws.amazon.com/contact-us/elasticache-node-limit-request/
  • http://redis.io/commands/AUTH
  • http://redis.io/commands/AUTH

src/aws/cloudformation.ts:

Info:

Single Functions:

postProcess:

 function (out) {
      try {
        const accountId = JSON.parse(out)["Account"];
        return [{ name: accountId }];
      } catch (error) {
        console.error(error);
      }
      return [];
    }

postProcess:

 function (out) {
      return postPrecessGenerator(out, "TypeSummaries", "TypeArn");
    }

postProcess:

 function (out) {
      return postPrecessGenerator(out, "Exports", "Name");
    }

postProcess:

 function (out, tokens) {
      try {
        return out.split("\n").map((line) => {
          const parts = line.split(/\s+/);
          // sub prefix
          if (!parts.length) {
            return [];
          }
          return {
            name: _prefixS3 + parts[parts.length - 1],
          };
        }) as Fig.Suggestion[];
      } catch (error) {
        console.error(error);
      }
      return [];
    }

postProcess:

 function (out) {
      return postPrecessGenerator(out, "Keys", "KeyId");
    }

src/aws/cognito-idp.ts:

Info:

URLs:

  • https://auth.example.com/userInfo
  • https://solar-system-data-api.example.com
  • https://solar-system-data-api.example.com
  • https://auth.example.com/userInfo
  • https://solar-system-data-api.example.com

src/aws.ts:

Info:

Single Functions:

postProcess:

 function (out) {
    if (out.trim() == "") {
      return [];
    }
    return out.split("\n").map((line) => ({
      name: line,
      icon: "👤",
    }));
  }

URLs:

  • https://bcm-data-exports.us-east-1.api.aws
  • https://bcm-pricing-calculator.us-east-1.api.aws
  • https://billing.us-east-1.api.aws
  • https://budgets.amazonaws.com
  • https://ce.us-east-1.amazonaws.com
  • https://service.chime.aws.amazon.com.
  • https://cost-optimization-hub.us-east-1.amazonaws.com
  • https://elasticbeanstalk.s3.amazonaws.com/doc/2010-12-01/AWSElasticBeanstalk.wsdl.
  • https://freetier.us-east-1.api.aws
  • https://invoicing.us-east-1.api.aws
  • https://organizations.us-east-1.amazonaws.com
  • http://aws.amazon.com/simpledb/
  • https://tools.ietf.org/html/rfc8628)
  • https://tax.us-east-1.amazonaws.com
  • http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html

src/aws/glue.ts:

Info:

src/aws/quicksight.ts:

Info:

URLs:

  • https://sapp.amazon.com
  • https://sapp.amazon.com

src/aws/iam.ts:

Info:

Single Functions:

postProcess:

 function (out, tokens) {
      try {
        const accountId = JSON.parse(out)["Account"];
        return [{ name: `arn:aws:iam::${accountId}-ID:root` }];
      } catch (error) {
        console.error(error);
      }
      return [];
    }

postProcess:

 function (out) {
      return postPrecessGenerator(out, "OpenIDConnectProviderList", "Arn");
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "get-open-id-connect-provider",
        "--open-id-connect-provider-arn",
        "ClientIDList"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "get-open-id-connect-provider",
        "--open-id-connect-provider-arn",
        "ThumbprintList"
      );
    }

postProcess:

 function (out) {
      return postPrecessGenerator(
        out,
        "InstanceProfiles",
        "InstanceProfileName"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      try {
        const idx = tokens.indexOf("--instance-profile-name");
        if (idx < 0) {
          return [];
        }
        const param = tokens[idx + 1];
        const { stdout } = await executeShellCommand({
          command: "aws",
          args: [
            "iam",
            "get-instance-profile",
            "--instance-profile-name",
            param,
          ],
        });
        const policies = JSON.parse(stdout)["InstanceProfile"];
        return policies["Roles"].map((elm) => {
          return {
            name: elm["RoleName"],
          };
        });
      } catch (e) {
        console.log(e);
      }
      return [];
    }

postProcess:

 function (out) {
      return postPrecessGenerator(out, "Users", "UserName");
    }

postProcess:

 function (out) {
      return postPrecessGenerator(out, "Users", "Arn");
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "list-user-policies",
        "--user-name",
        "PolicyNames"
      );
    }

postProcess:

 function (out) {
      return postPrecessGenerator(out, "Groups", "GroupName");
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "get-group",
        "--group-name",
        "Users",
        "UserName"
      );
    }

postProcess:

 function (out) {
      return postPrecessGenerator(out, "Policies", "Arn");
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "list-policy-versions",
        "--policy-arn",
        "Versions",
        "VersionId"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "list-group-policies",
        "--group-name",
        "PolicyNames"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "list-attached-group-policies",
        "--group-name",
        "AttachedPolicies",
        "PolicyArn"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "list-attached-group-policies",
        "--group-name",
        "AttachedPolicies",
        "PolicyName"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "list-attached-role-policies",
        "--role-name",
        "AttachedPolicies",
        "PolicyArn"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "list-attached-user-policies",
        "--user-name",
        "AttachedPolicies",
        "PolicyArn"
      );
    }

postProcess:

 function (out) {
      return postPrecessGenerator(out, "Roles", "RoleName");
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "list-role-policies",
        "--role-name",
        "PolicyNames"
      );
    }

postProcess:

 function (out) {
      return postPrecessGenerator(out, "MFADevices", "SerialNumber");
    }

postProcess:

 function (out) {
      return postPrecessGenerator(out, "VirtualMFADevices", "SerialNumber");
    }

postProcess:

 function (out) {
      return postPrecessGenerator(out, "AccessKeyMetadata", "AccessKeyId");
    }

postProcess:

 function (out) {
      return postPrecessGenerator(out, "AccountAliases");
    }

postProcess:

 function (out) {
      return postPrecessGenerator(out, "SAMLProviderList", "Arn");
    }

postProcess:

 function (out) {
      return postPrecessGenerator(out, "SSHPublicKeys", "SSHPublicKeyId");
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "list-ssh-public-keys",
        "--user-name",
        "SSHPublicKeys",
        "SSHPublicKeyId"
      );
    }

postProcess:

 function (out) {
      return postPrecessGenerator(
        out,
        "ServerCertificateMetadataList",
        "ServerCertificateName"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "list-service-specific-credentials",
        "--user-name",
        "ServiceSpecificCredentials",
        "ServiceSpecificCredentialId"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "list-signing-certificates",
        "--user-name",
        "Certificates",
        "CertificateId"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      return MultiSuggestionsGenerator(tokens, executeShellCommand, [
        ...identityStruct,
        {
          command: ["iam", "list-policies", "--scope", "Local"],
          parentKey: "Policies",
          childKey: "Arn",
        },
      ]);
    }

custom:

 async function (tokens, executeShellCommand) {
      return MultiSuggestionsGenerator(
        tokens,
        executeShellCommand,
        identityStruct
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "list-instance-profile-tags",
        "--instance-profile-name",
        "Tags",
        "Key"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "list-mfa-device-tags",
        "--serial-number",
        "Tags",
        "Key"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "list-open-id-connect-provider-tags",
        "--open-id-connect-provider-arn",
        "Tags",
        "Key"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "list-policy-tags",
        "--policy-arn",
        "Tags",
        "Key"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "list-role-tags",
        "--role-name",
        "Tags",
        "Key"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "list-saml-provider-tags",
        "--saml-provider-arn",
        "Tags",
        "Key"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "list-server-certificate-tags",
        "--server-certificate-name",
        "Tags",
        "Key"
      );
    }

custom:

 async function (tokens, executeShellCommand) {
      return listCustomGenerator(
        tokens,
        executeShellCommand,
        "list-user-tags",
        "--user-name",
        "Tags",
        "Key"
      );
    }

URLs:

  • https://server.example.org
  • https://keys.server.example.com/openid-connect.
  • https://sts.amazonaws.com.

src/aws/ssm.ts:

Info:

src/aws/iot.ts:

Info:

URLs:

  • https://s3.region-code.amazonaws.com/example-firmware/device-firmware.1.0
  • https://s3.region-code.amazonaws.com/example-firmware/device-firmware.1.0

src/aws/connect.ts:

Info:

src/aws/s3api.ts:

Info:

Single Functions:

postProcess:

 function (out) {
    const json = JSON.parse(out);
    return json.Buckets.map((bucket) => {
      let date;
      try {
        date = new Date(bucket.CreationDate).toLocaleDateString();
      } catch (e) {
        date = bucket.CreationDate;
      }
      return {
        name: bucket.Name,
        description: `Created: ${date}`,
      };
    });
  }

URLs:

  • https://bucket-name.s3express-zone-id.region-code.amazonaws.com/key-name
  • https://bucket-name.s3express-zone-id.region-code.amazonaws.com/key-name
  • https://bucket-name.s3express-zone-id.region-code.amazonaws.com/key-name
  • https://s3express-control.region-code.amazonaws.com/bucket-name
  • https://s3express-control.region-code.amazonaws.com/bucket-name
  • https://bucket-name.s3express-zone-id.region-code.amazonaws.com/key-name
  • https://bucket-name.s3express-zone-id.region-code.amazonaws.com.
  • https://s3express-control.region-code.amazonaws.com/bucket-name
  • https://s3express-control.region-code.amazonaws.com/bucket-name
  • https://s3express-control.region-code.amazonaws.com/bucket-name
  • https://s3express-control.region-code.amazonaws.com/bucket-name
  • https://s3express-control.region-code.amazonaws.com/bucket-name
  • https://s3express-control.region-code.amazonaws.com/bucket-name
  • https://bucket-name.s3express-zone-id.region-code.amazonaws.com/key-name
  • https://bucket-name.s3express-zone-id.region-code.amazonaws.com/key-name
  • https://s3express-control.region-code.amazonaws.com/bucket-name
  • https://s3express-control.region-code.amazonaws.com/bucket-name
  • https://s3express-control.region-code.amazonaws.com/bucket-name
  • https://s3express-control.region-code.amazonaws.com/bucket-name
  • https://bucket-name.s3express-zone-id.region-code.amazonaws.com/key-name
  • https://www.rfc-editor.org/rfc/rfc9110.html#name-range.
  • https://bucket-name.s3express-zone-id.region-code.amazonaws.com/key-name
  • https://bucket-name.s3express-zone-id.region-code.amazonaws.com.
  • https://bucket-name.s3express-zone-id.region-code.amazonaws.com/key-name
  • https://s3express-control.region-code.amazonaws.com/bucket-name
  • https://bucket-name.s3express-zone-id.region-code.amazonaws.com/key-name
  • https://bucket-name.s3express-zone-id.region-code.amazonaws.com/key-name
  • https://bucket-name.s3express-zone-id.region-code.amazonaws.com/key-name
  • http://acs.amazonaws.com/groups/s3/LogDelivery
  • http://www.example.com
  • https://s3express-control.region-code.amazonaws.com/bucket-name
  • https://s3express-control.region-code.amazonaws.com/bucket-name
  • https://s3express-control.region-code.amazonaws.com/bucket-name
  • http://www.w3.org/2001/XMLSchema-instance
  • https://s3express-control.region-code.amazonaws.com/bucket-name
  • https://s3express-control.region-code.amazonaws.com/bucket-name
  • https://bucket-name.s3express-zone-id.region-code.amazonaws.com/key-name
  • http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9
  • https://www.rfc-editor.org/rfc/rfc6266#section-4
  • https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding
  • https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length
  • https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type
  • https://www.rfc-editor.org/rfc/rfc7234#section-5.3
  • http://www.example.com/
  • http://www.w3.org/2001/XMLSchema-instance
  • https://bucket-name.s3express-zone-id.region-code.amazonaws.com/key-name
  • https://bucket-name.s3express-zone-id.region-code.amazonaws.com/key-name

src/aws/rds.ts:

Info:

@withfig-bot
Copy link
Collaborator Author

Hello @withfig-bot,
thank you very much for creating a Pull Request!
Here is a small checklist to get this PR merged as quickly as possible:

  • Do all subcommands / options which take arguments include the args property (args: {})?
  • Are all options modular? E.g. -a -u -x instead of -aux
  • Have all other checks passed?

Please add a 👍 as a reaction to this comment to show that you read this.

@grant0417 grant0417 merged commit a70f7e1 into withfig:master Dec 3, 2024
5 checks passed
@withfig withfig locked and limited conversation to collaborators Dec 3, 2024
@withfig-bot withfig-bot deleted the auto-update/aws/c579f839-5d69-4ca5-95a7-b56d5fac2720 branch December 4, 2024 00:33
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants