community.aws.api_gateway (5.1.0) — module

Manage AWS API Gateway APIs

| "added in version" 1.0.0 of community.aws"

Authors: Michael De La Rue (@mikedlr)

Install collection

Install with ansible-galaxy collection install community.aws:==5.1.0


Add to requirements.yml

  collections:
    - name: community.aws
      version: 5.1.0

Description

Allows for the management of API Gateway APIs.

Normally you should give the api_id since there is no other stable guaranteed unique identifier for the API. If you do not give api_id then a new API will be created each time this is run.

swagger_file and swagger_text are passed directly on to AWS transparently whilst swagger_dict is an ansible dict which is converted to JSON before the API definitions are uploaded.

Prior to release 5.0.0 this module was called C(community.aws.aws_api_gateway). The usage did not change.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Setup AWS API Gateway setup on AWS and deploy API definition
  community.aws.api_gateway:
    swagger_file: my_api.yml
    stage: production
    cache_enabled: true
    cache_size: '1.6'
    tracing_enabled: true
    endpoint_type: EDGE
    state: present
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Update API definition to deploy new version
  community.aws.api_gateway:
    api_id: 'abc123321cba'
    swagger_file: my_api.yml
    deploy_desc: Make auth fix available.
    cache_enabled: true
    cache_size: '1.6'
    endpoint_type: EDGE
    state: present
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Update API definitions and settings and deploy as canary
  community.aws.api_gateway:
    api_id: 'abc123321cba'
    swagger_file: my_api.yml
    cache_enabled: true
    cache_size: '6.1'
    canary_settings: { percentTraffic: 50.0, deploymentId: '123', useStageCache: True }
    state: present

Inputs

    
stage:
    description:
    - The name of the stage the API should be deployed to.
    type: str

state:
    choices:
    - present
    - absent
    default: present
    description: Create or delete API Gateway.
    type: str

api_id:
    description:
    - The ID of the API you want to manage.
    type: str

region:
    aliases:
    - aws_region
    - ec2_region
    description:
    - The AWS region to use.
    - For global services such as IAM, Route53 and CloudFront, I(region) is ignored.
    - The C(AWS_REGION) or C(EC2_REGION) environment variables may also be used.
    - See the Amazon AWS documentation for more information U(http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region).
    - The C(ec2_region) alias has been deprecated and will be removed in a release after
      2024-12-01
    - Support for the C(EC2_REGION) environment variable has been deprecated and will
      be removed in a release after 2024-12-01.
    type: str

profile:
    aliases:
    - aws_profile
    description:
    - A named AWS profile to use for authentication.
    - See the AWS documentation for more information about named profiles U(https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html).
    - The C(AWS_PROFILE) environment variable may also be used.
    - The I(profile) option is mutually exclusive with the I(aws_access_key), I(aws_secret_key)
      and I(security_token) options.
    type: str

access_key:
    aliases:
    - aws_access_key_id
    - aws_access_key
    - ec2_access_key
    description:
    - AWS access key ID.
    - See the AWS documentation for more information about access tokens U(https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys).
    - The C(AWS_ACCESS_KEY_ID), C(AWS_ACCESS_KEY) or C(EC2_ACCESS_KEY) environment variables
      may also be used in decreasing order of preference.
    - The I(aws_access_key) and I(profile) options are mutually exclusive.
    - The I(aws_access_key_id) alias was added in release 5.1.0 for consistency with the
      AWS botocore SDK.
    - The I(ec2_access_key) alias has been deprecated and will be removed in a release
      after 2024-12-01.
    - Support for the C(EC2_ACCESS_KEY) environment variable has been deprecated and will
      be removed in a release after 2024-12-01.
    type: str

aws_config:
    description:
    - A dictionary to modify the botocore configuration.
    - Parameters can be found in the AWS documentation U(https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config).
    type: dict

cache_size:
    choices:
    - '0.5'
    - '1.6'
    - '6.1'
    - '13.5'
    - '28.4'
    - '58.2'
    - '118'
    - '237'
    default: '0.5'
    description:
    - Size in GB of the API GW cache, becomes effective when cache_enabled is true.
    type: str

secret_key:
    aliases:
    - aws_secret_access_key
    - aws_secret_key
    - ec2_secret_key
    description:
    - AWS secret access key.
    - See the AWS documentation for more information about access tokens U(https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys).
    - The C(AWS_SECRET_ACCESS_KEY), C(AWS_SECRET_KEY), or C(EC2_SECRET_KEY) environment
      variables may also be used in decreasing order of preference.
    - The I(secret_key) and I(profile) options are mutually exclusive.
    - The I(aws_secret_access_key) alias was added in release 5.1.0 for consistency with
      the AWS botocore SDK.
    - The I(ec2_secret_key) alias has been deprecated and will be removed in a release
      after 2024-12-01.
    - Support for the C(EC2_SECRET_KEY) environment variable has been deprecated and will
      be removed in a release after 2024-12-01.
    type: str

deploy_desc:
    default: Automatic deployment by Ansible.
    description:
    - Description of the deployment.
    - Recorded and visible in the AWS console.
    type: str

endpoint_url:
    aliases:
    - ec2_url
    - aws_endpoint_url
    - s3_url
    description:
    - URL to connect to instead of the default AWS endpoints.  While this can be used
      to connection to other AWS-compatible services the amazon.aws and community.aws
      collections are only tested against AWS.
    - The  C(AWS_URL) or C(EC2_URL) environment variables may also be used, in decreasing
      order of preference.
    - The I(ec2_url) and I(s3_url) aliases have been deprecated and will be removed in
      a release after 2024-12-01.
    - Support for the C(EC2_URL) environment variable has been deprecated and will be
      removed in a release after 2024-12-01.
    type: str

swagger_dict:
    description:
    - Swagger definitions API ansible dictionary which will be converted to JSON and uploaded.
    type: json

swagger_file:
    aliases:
    - src
    - api_file
    description:
    - JSON or YAML file containing swagger definitions for API. Exactly one of I(swagger_file),
      I(swagger_text) or I(swagger_dict) must be present.
    type: path

swagger_text:
    description:
    - Swagger definitions for API in JSON or YAML as a string direct from playbook.
    type: str

aws_ca_bundle:
    description:
    - The location of a CA Bundle to use when validating SSL certificates.
    - The C(AWS_CA_BUNDLE) environment variable may also be used.
    type: path

cache_enabled:
    default: false
    description:
    - Enable API GW caching of backend responses.
    type: bool

endpoint_type:
    choices:
    - EDGE
    - REGIONAL
    - PRIVATE
    default: EDGE
    description:
    - Type of endpoint configuration.
    - Use C(EDGE) for an edge optimized API endpoint, C(REGIONAL) for just a regional
      deploy or C(PRIVATE) for a private API.
    - This flag will only be used when creating a new API Gateway setup, not for updates.
    type: str

session_token:
    aliases:
    - aws_session_token
    - security_token
    - aws_security_token
    - access_token
    description:
    - AWS STS session token for use with temporary credentials.
    - See the AWS documentation for more information about access tokens U(https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys).
    - The C(AWS_SESSION_TOKEN), C(AWS_SECURITY_TOKEN) or C(EC2_SECURITY_TOKEN) environment
      variables may also be used in decreasing order of preference.
    - The I(security_token) and I(profile) options are mutually exclusive.
    - Aliases I(aws_session_token) and I(session_token) were added in release 3.2.0, with
      the parameter being renamed from I(security_token) to I(session_token) in release
      6.0.0.
    - The I(security_token), I(aws_security_token), and I(access_token) aliases have been
      deprecated and will be removed in a release after 2024-12-01.
    - Support for the C(EC2_SECRET_KEY) and C(AWS_SECURITY_TOKEN) environment variables
      has been deprecated and will be removed in a release after 2024-12-01.
    type: str

validate_certs:
    default: true
    description:
    - When set to C(false), SSL certificates will not be validated for communication with
      the AWS APIs.
    - Setting I(validate_certs=false) is strongly discouraged, as an alternative, consider
      setting I(aws_ca_bundle) instead.
    type: bool

stage_variables:
    default: {}
    description:
    - ENV variables for the stage. Define a dict of key values pairs for variables.
    type: dict

tracing_enabled:
    default: false
    description:
    - Specifies whether active tracing with X-ray is enabled for the API GW stage.
    type: bool

stage_canary_settings:
    default: {}
    description:
    - Canary settings for the deployment of the stage.
    - 'Dict with following settings:'
    - 'C(percentTraffic): The percent (0-100) of traffic diverted to a canary deployment.'
    - 'C(deploymentId): The ID of the canary deployment.'
    - 'C(stageVariableOverrides): Stage variables overridden for a canary release deployment.'
    - 'C(useStageCache): A Boolean flag to indicate whether the canary deployment uses
      the stage cache or not.'
    - See docs U(https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/apigateway.html#APIGateway.Client.create_stage)
    type: dict

debug_botocore_endpoint_logs:
    default: false
    description:
    - Use a C(botocore.endpoint) logger to parse the unique (rather than total) C("resource:action")
      API calls made during a task, outputing the set to the resource_actions key in the
      task results. Use the C(aws_resource_action) callback to output to total list made
      during a playbook.
    - The C(ANSIBLE_DEBUG_BOTOCORE_LOGS) environment variable may also be used.
    type: bool

Outputs

api_id:
  description: API id of the API endpoint created
  returned: success
  sample: 0ln4zq7p86
  type: str
configure_response:
  description: AWS response from the API configure call
  returned: success
  sample:
    api_key_source: HEADER
    created_at: '2020-01-01T11:37:59+00:00'
    id: 0ln4zq7p86
  type: dict
deploy_response:
  description: AWS response from the API deploy call
  returned: success
  sample:
    created_date: '2020-01-01T11:36:59+00:00'
    description: Automatic deployment by Ansible.
    id: rptv4b
  type: dict
resource_actions:
  description: Actions performed against AWS API
  returned: always
  sample:
  - apigateway:CreateRestApi
  - apigateway:CreateDeployment
  - apigateway:PutRestApi
  type: list