{
  "metadata": {
    "apiVersion": "2020-08-11",
    "endpointPrefix": "amplifybackend",
    "signingName": "amplifybackend",
    "serviceFullName": "AmplifyBackend",
    "serviceId": "AmplifyBackend",
    "protocol": "rest-json",
    "jsonVersion": "1.1",
    "uid": "amplifybackend-2020-08-11",
    "signatureVersion": "v4"
  },
  "operations": {
    "CloneBackend": {
      "name": "CloneBackend",
      "http": {
        "method": "POST",
        "requestUri": "/backend/{appId}/environments/{backendEnvironmentName}/clone",
        "responseCode": 200
      },
      "input": {
        "shape": "CloneBackendRequest"
      },
      "output": {
        "shape": "CloneBackendResponse",
        "documentation": "<p>200 response</p>"
      },
      "errors": [
        {
          "shape": "NotFoundException",
          "documentation": "<p>404 response</p>"
        },
        {
          "shape": "GatewayTimeoutException",
          "documentation": "<p>504 response</p>"
        },
        {
          "shape": "TooManyRequestsException",
          "documentation": "<p>429 response</p>"
        },
        {
          "shape": "BadRequestException",
          "documentation": "<p>400 response</p>"
        }
      ],
      "documentation": "<p>This operation clones an existing backend.</p>"
    },
    "CreateBackend": {
      "name": "CreateBackend",
      "http": {
        "method": "POST",
        "requestUri": "/backend",
        "responseCode": 200
      },
      "input": {
        "shape": "CreateBackendRequest"
      },
      "output": {
        "shape": "CreateBackendResponse",
        "documentation": "<p>200 response</p>"
      },
      "errors": [
        {
          "shape": "NotFoundException",
          "documentation": "<p>404 response</p>"
        },
        {
          "shape": "GatewayTimeoutException",
          "documentation": "<p>504 response</p>"
        },
        {
          "shape": "TooManyRequestsException",
          "documentation": "<p>429 response</p>"
        },
        {
          "shape": "BadRequestException",
          "documentation": "<p>400 response</p>"
        }
      ],
      "documentation": "<p>This operation creates a backend for an Amplify app. Backends are automatically created at the time of app creation.</p>"
    },
    "CreateBackendAPI": {
      "name": "CreateBackendAPI",
      "http": {
        "method": "POST",
        "requestUri": "/backend/{appId}/api",
        "responseCode": 200
      },
      "input": {
        "shape": "CreateBackendAPIRequest"
      },
      "output": {
        "shape": "CreateBackendAPIResponse",
        "documentation": "<p>200 response</p>"
      },
      "errors": [
        {
          "shape": "NotFoundException",
          "documentation": "<p>404 response</p>"
        },
        {
          "shape": "GatewayTimeoutException",
          "documentation": "<p>504 response</p>"
        },
        {
          "shape": "TooManyRequestsException",
          "documentation": "<p>429 response</p>"
        },
        {
          "shape": "BadRequestException",
          "documentation": "<p>400 response</p>"
        }
      ],
      "documentation": "<p>Creates a new backend API resource.</p>"
    },
    "CreateBackendAuth": {
      "name": "CreateBackendAuth",
      "http": {
        "method": "POST",
        "requestUri": "/backend/{appId}/auth",
        "responseCode": 200
      },
      "input": {
        "shape": "CreateBackendAuthRequest"
      },
      "output": {
        "shape": "CreateBackendAuthResponse",
        "documentation": "<p>200 response</p>"
      },
      "errors": [
        {
          "shape": "NotFoundException",
          "documentation": "<p>404 response</p>"
        },
        {
          "shape": "GatewayTimeoutException",
          "documentation": "<p>504 response</p>"
        },
        {
          "shape": "TooManyRequestsException",
          "documentation": "<p>429 response</p>"
        },
        {
          "shape": "BadRequestException",
          "documentation": "<p>400 response</p>"
        }
      ],
      "documentation": "<p>Creates a new backend authentication resource.</p>"
    },
    "CreateBackendConfig": {
      "name": "CreateBackendConfig",
      "http": {
        "method": "POST",
        "requestUri": "/backend/{appId}/config",
        "responseCode": 200
      },
      "input": {
        "shape": "CreateBackendConfigRequest"
      },
      "output": {
        "shape": "CreateBackendConfigResponse",
        "documentation": "<p>200 response</p>"
      },
      "errors": [
        {
          "shape": "NotFoundException",
          "documentation": "<p>404 response</p>"
        },
        {
          "shape": "GatewayTimeoutException",
          "documentation": "<p>504 response</p>"
        },
        {
          "shape": "TooManyRequestsException",
          "documentation": "<p>429 response</p>"
        },
        {
          "shape": "BadRequestException",
          "documentation": "<p>400 response</p>"
        }
      ],
      "documentation": "<p>Creates a config object for a backend.</p>"
    },
    "CreateToken": {
      "name": "CreateToken",
      "http": {
        "method": "POST",
        "requestUri": "/backend/{appId}/challenge",
        "responseCode": 200
      },
      "input": {
        "shape": "CreateTokenRequest"
      },
      "output": {
        "shape": "CreateTokenResponse",
        "documentation": "<p>200 response</p>"
      },
      "errors": [
        {
          "shape": "NotFoundException",
          "documentation": "<p>404 response</p>"
        },
        {
          "shape": "GatewayTimeoutException",
          "documentation": "<p>504 response</p>"
        },
        {
          "shape": "TooManyRequestsException",
          "documentation": "<p>429 response</p>"
        },
        {
          "shape": "BadRequestException",
          "documentation": "<p>400 response</p>"
        }
      ],
      "documentation": "<p>Generates a one-time challenge code to authenticate a user into your Amplify Admin UI.</p>"
    },
    "DeleteBackend": {
      "name": "DeleteBackend",
      "http": {
        "method": "POST",
        "requestUri": "/backend/{appId}/environments/{backendEnvironmentName}/remove",
        "responseCode": 200
      },
      "input": {
        "shape": "DeleteBackendRequest"
      },
      "output": {
        "shape": "DeleteBackendResponse",
        "documentation": "<p>200 response</p>"
      },
      "errors": [
        {
          "shape": "NotFoundException",
          "documentation": "<p>404 response</p>"
        },
        {
          "shape": "GatewayTimeoutException",
          "documentation": "<p>504 response</p>"
        },
        {
          "shape": "TooManyRequestsException",
          "documentation": "<p>429 response</p>"
        },
        {
          "shape": "BadRequestException",
          "documentation": "<p>400 response</p>"
        }
      ],
      "documentation": "<p>Removes an existing environment from your Amplify project.</p>"
    },
    "DeleteBackendAPI": {
      "name": "DeleteBackendAPI",
      "http": {
        "method": "POST",
        "requestUri": "/backend/{appId}/api/{backendEnvironmentName}/remove",
        "responseCode": 200
      },
      "input": {
        "shape": "DeleteBackendAPIRequest"
      },
      "output": {
        "shape": "DeleteBackendAPIResponse",
        "documentation": "<p>200 response</p>"
      },
      "errors": [
        {
          "shape": "NotFoundException",
          "documentation": "<p>404 response</p>"
        },
        {
          "shape": "GatewayTimeoutException",
          "documentation": "<p>504 response</p>"
        },
        {
          "shape": "TooManyRequestsException",
          "documentation": "<p>429 response</p>"
        },
        {
          "shape": "BadRequestException",
          "documentation": "<p>400 response</p>"
        }
      ],
      "documentation": "<p>Deletes an existing backend API resource.</p>"
    },
    "DeleteBackendAuth": {
      "name": "DeleteBackendAuth",
      "http": {
        "method": "POST",
        "requestUri": "/backend/{appId}/auth/{backendEnvironmentName}/remove",
        "responseCode": 200
      },
      "input": {
        "shape": "DeleteBackendAuthRequest"
      },
      "output": {
        "shape": "DeleteBackendAuthResponse",
        "documentation": "<p>200 response</p>"
      },
      "errors": [
        {
          "shape": "NotFoundException",
          "documentation": "<p>404 response</p>"
        },
        {
          "shape": "GatewayTimeoutException",
          "documentation": "<p>504 response</p>"
        },
        {
          "shape": "TooManyRequestsException",
          "documentation": "<p>429 response</p>"
        },
        {
          "shape": "BadRequestException",
          "documentation": "<p>400 response</p>"
        }
      ],
      "documentation": "<p>Deletes an existing backend authentication resource.</p>"
    },
    "DeleteToken": {
      "name": "DeleteToken",
      "http": {
        "method": "POST",
        "requestUri": "/backend/{appId}/challenge/{sessionId}/remove",
        "responseCode": 200
      },
      "input": {
        "shape": "DeleteTokenRequest"
      },
      "output": {
        "shape": "DeleteTokenResponse",
        "documentation": "<p>200 response</p>"
      },
      "errors": [
        {
          "shape": "NotFoundException",
          "documentation": "<p>404 response</p>"
        },
        {
          "shape": "GatewayTimeoutException",
          "documentation": "<p>504 response</p>"
        },
        {
          "shape": "TooManyRequestsException",
          "documentation": "<p>429 response</p>"
        },
        {
          "shape": "BadRequestException",
          "documentation": "<p>400 response</p>"
        }
      ],
      "documentation": "<p>Deletes the challenge token based on the given appId and sessionId.</p>"
    },
    "GenerateBackendAPIModels": {
      "name": "GenerateBackendAPIModels",
      "http": {
        "method": "POST",
        "requestUri": "/backend/{appId}/api/{backendEnvironmentName}/generateModels",
        "responseCode": 200
      },
      "input": {
        "shape": "GenerateBackendAPIModelsRequest"
      },
      "output": {
        "shape": "GenerateBackendAPIModelsResponse",
        "documentation": "<p>200 response</p>"
      },
      "errors": [
        {
          "shape": "NotFoundException",
          "documentation": "<p>404 response</p>"
        },
        {
          "shape": "GatewayTimeoutException",
          "documentation": "<p>504 response</p>"
        },
        {
          "shape": "TooManyRequestsException",
          "documentation": "<p>429 response</p>"
        },
        {
          "shape": "BadRequestException",
          "documentation": "<p>400 response</p>"
        }
      ],
      "documentation": "<p>Generates a model schema for an existing backend API resource.</p>"
    },
    "GetBackend": {
      "name": "GetBackend",
      "http": {
        "method": "POST",
        "requestUri": "/backend/{appId}/details",
        "responseCode": 200
      },
      "input": {
        "shape": "GetBackendRequest"
      },
      "output": {
        "shape": "GetBackendResponse",
        "documentation": "<p>200 response</p>"
      },
      "errors": [
        {
          "shape": "NotFoundException",
          "documentation": "<p>404 response</p>"
        },
        {
          "shape": "GatewayTimeoutException",
          "documentation": "<p>504 response</p>"
        },
        {
          "shape": "TooManyRequestsException",
          "documentation": "<p>429 response</p>"
        },
        {
          "shape": "BadRequestException",
          "documentation": "<p>400 response</p>"
        }
      ],
      "documentation": "<p>Provides project-level details for your Amplify UI project.</p>"
    },
    "GetBackendAPI": {
      "name": "GetBackendAPI",
      "http": {
        "method": "POST",
        "requestUri": "/backend/{appId}/api/{backendEnvironmentName}/details",
        "responseCode": 200
      },
      "input": {
        "shape": "GetBackendAPIRequest"
      },
      "output": {
        "shape": "GetBackendAPIResponse",
        "documentation": "<p>200 response</p>"
      },
      "errors": [
        {
          "shape": "NotFoundException",
          "documentation": "<p>404 response</p>"
        },
        {
          "shape": "GatewayTimeoutException",
          "documentation": "<p>504 response</p>"
        },
        {
          "shape": "TooManyRequestsException",
          "documentation": "<p>429 response</p>"
        },
        {
          "shape": "BadRequestException",
          "documentation": "<p>400 response</p>"
        }
      ],
      "documentation": "<p>Gets the details for a backend API.</p>"
    },
    "GetBackendAPIModels": {
      "name": "GetBackendAPIModels",
      "http": {
        "method": "POST",
        "requestUri": "/backend/{appId}/api/{backendEnvironmentName}/getModels",
        "responseCode": 200
      },
      "input": {
        "shape": "GetBackendAPIModelsRequest"
      },
      "output": {
        "shape": "GetBackendAPIModelsResponse",
        "documentation": "<p>200 response</p>"
      },
      "errors": [
        {
          "shape": "NotFoundException",
          "documentation": "<p>404 response</p>"
        },
        {
          "shape": "GatewayTimeoutException",
          "documentation": "<p>504 response</p>"
        },
        {
          "shape": "TooManyRequestsException",
          "documentation": "<p>429 response</p>"
        },
        {
          "shape": "BadRequestException",
          "documentation": "<p>400 response</p>"
        }
      ],
      "documentation": "<p>Generates a model schema for existing backend API resource.</p>"
    },
    "GetBackendAuth": {
      "name": "GetBackendAuth",
      "http": {
        "method": "POST",
        "requestUri": "/backend/{appId}/auth/{backendEnvironmentName}/details",
        "responseCode": 200
      },
      "input": {
        "shape": "GetBackendAuthRequest"
      },
      "output": {
        "shape": "GetBackendAuthResponse",
        "documentation": "<p>200 response</p>"
      },
      "errors": [
        {
          "shape": "NotFoundException",
          "documentation": "<p>404 response</p>"
        },
        {
          "shape": "GatewayTimeoutException",
          "documentation": "<p>504 response</p>"
        },
        {
          "shape": "TooManyRequestsException",
          "documentation": "<p>429 response</p>"
        },
        {
          "shape": "BadRequestException",
          "documentation": "<p>400 response</p>"
        }
      ],
      "documentation": "<p>Gets backend auth details.</p>"
    },
    "GetBackendJob": {
      "name": "GetBackendJob",
      "http": {
        "method": "GET",
        "requestUri": "/backend/{appId}/job/{backendEnvironmentName}/{jobId}",
        "responseCode": 200
      },
      "input": {
        "shape": "GetBackendJobRequest"
      },
      "output": {
        "shape": "GetBackendJobResponse",
        "documentation": "<p>200 response</p>"
      },
      "errors": [
        {
          "shape": "NotFoundException",
          "documentation": "<p>404 response</p>"
        },
        {
          "shape": "GatewayTimeoutException",
          "documentation": "<p>504 response</p>"
        },
        {
          "shape": "TooManyRequestsException",
          "documentation": "<p>429 response</p>"
        },
        {
          "shape": "BadRequestException",
          "documentation": "<p>400 response</p>"
        }
      ],
      "documentation": "<p>Returns information about a specific job.</p>"
    },
    "GetToken": {
      "name": "GetToken",
      "http": {
        "method": "GET",
        "requestUri": "/backend/{appId}/challenge/{sessionId}",
        "responseCode": 200
      },
      "input": {
        "shape": "GetTokenRequest"
      },
      "output": {
        "shape": "GetTokenResponse",
        "documentation": "<p>200 response</p>"
      },
      "errors": [
        {
          "shape": "NotFoundException",
          "documentation": "<p>404 response</p>"
        },
        {
          "shape": "GatewayTimeoutException",
          "documentation": "<p>504 response</p>"
        },
        {
          "shape": "TooManyRequestsException",
          "documentation": "<p>429 response</p>"
        },
        {
          "shape": "BadRequestException",
          "documentation": "<p>400 response</p>"
        }
      ],
      "documentation": "<p>Gets the challenge token based on the given appId and sessionId.</p>"
    },
    "ListBackendJobs": {
      "name": "ListBackendJobs",
      "http": {
        "method": "POST",
        "requestUri": "/backend/{appId}/job/{backendEnvironmentName}",
        "responseCode": 200
      },
      "input": {
        "shape": "ListBackendJobsRequest"
      },
      "output": {
        "shape": "ListBackendJobsResponse",
        "documentation": "<p>200 response</p>"
      },
      "errors": [
        {
          "shape": "NotFoundException",
          "documentation": "<p>404 response</p>"
        },
        {
          "shape": "GatewayTimeoutException",
          "documentation": "<p>504 response</p>"
        },
        {
          "shape": "TooManyRequestsException",
          "documentation": "<p>429 response</p>"
        },
        {
          "shape": "BadRequestException",
          "documentation": "<p>400 response</p>"
        }
      ],
      "documentation": "<p>Lists the jobs for the backend of an Amplify app.</p>"
    },
    "RemoveAllBackends": {
      "name": "RemoveAllBackends",
      "http": {
        "method": "POST",
        "requestUri": "/backend/{appId}/remove",
        "responseCode": 200
      },
      "input": {
        "shape": "RemoveAllBackendsRequest"
      },
      "output": {
        "shape": "RemoveAllBackendsResponse",
        "documentation": "<p>200 response</p>"
      },
      "errors": [
        {
          "shape": "NotFoundException",
          "documentation": "<p>404 response</p>"
        },
        {
          "shape": "GatewayTimeoutException",
          "documentation": "<p>504 response</p>"
        },
        {
          "shape": "TooManyRequestsException",
          "documentation": "<p>429 response</p>"
        },
        {
          "shape": "BadRequestException",
          "documentation": "<p>400 response</p>"
        }
      ],
      "documentation": "<p>Removes all backend environments from your Amplify project.</p>"
    },
    "RemoveBackendConfig": {
      "name": "RemoveBackendConfig",
      "http": {
        "method": "POST",
        "requestUri": "/backend/{appId}/config/remove",
        "responseCode": 200
      },
      "input": {
        "shape": "RemoveBackendConfigRequest"
      },
      "output": {
        "shape": "RemoveBackendConfigResponse",
        "documentation": "<p>200 response</p>"
      },
      "errors": [
        {
          "shape": "NotFoundException",
          "documentation": "<p>404 response</p>"
        },
        {
          "shape": "GatewayTimeoutException",
          "documentation": "<p>504 response</p>"
        },
        {
          "shape": "TooManyRequestsException",
          "documentation": "<p>429 response</p>"
        },
        {
          "shape": "BadRequestException",
          "documentation": "<p>400 response</p>"
        }
      ],
      "documentation": "<p>Removes the AWS resources that are required to access the Amplify Admin UI.</p>"
    },
    "UpdateBackendAPI": {
      "name": "UpdateBackendAPI",
      "http": {
        "method": "POST",
        "requestUri": "/backend/{appId}/api/{backendEnvironmentName}",
        "responseCode": 200
      },
      "input": {
        "shape": "UpdateBackendAPIRequest"
      },
      "output": {
        "shape": "UpdateBackendAPIResponse",
        "documentation": "<p>200 response</p>"
      },
      "errors": [
        {
          "shape": "NotFoundException",
          "documentation": "<p>404 response</p>"
        },
        {
          "shape": "GatewayTimeoutException",
          "documentation": "<p>504 response</p>"
        },
        {
          "shape": "TooManyRequestsException",
          "documentation": "<p>429 response</p>"
        },
        {
          "shape": "BadRequestException",
          "documentation": "<p>400 response</p>"
        }
      ],
      "documentation": "<p>Updates an existing backend API resource.</p>"
    },
    "UpdateBackendAuth": {
      "name": "UpdateBackendAuth",
      "http": {
        "method": "POST",
        "requestUri": "/backend/{appId}/auth/{backendEnvironmentName}",
        "responseCode": 200
      },
      "input": {
        "shape": "UpdateBackendAuthRequest"
      },
      "output": {
        "shape": "UpdateBackendAuthResponse",
        "documentation": "<p>200 response</p>"
      },
      "errors": [
        {
          "shape": "NotFoundException",
          "documentation": "<p>404 response</p>"
        },
        {
          "shape": "GatewayTimeoutException",
          "documentation": "<p>504 response</p>"
        },
        {
          "shape": "TooManyRequestsException",
          "documentation": "<p>429 response</p>"
        },
        {
          "shape": "BadRequestException",
          "documentation": "<p>400 response</p>"
        }
      ],
      "documentation": "<p>Updates an existing backend authentication resource.</p>"
    },
    "UpdateBackendConfig": {
      "name": "UpdateBackendConfig",
      "http": {
        "method": "POST",
        "requestUri": "/backend/{appId}/config/update",
        "responseCode": 200
      },
      "input": {
        "shape": "UpdateBackendConfigRequest"
      },
      "output": {
        "shape": "UpdateBackendConfigResponse",
        "documentation": "<p>200 response</p>"
      },
      "errors": [
        {
          "shape": "NotFoundException",
          "documentation": "<p>404 response</p>"
        },
        {
          "shape": "GatewayTimeoutException",
          "documentation": "<p>504 response</p>"
        },
        {
          "shape": "TooManyRequestsException",
          "documentation": "<p>429 response</p>"
        },
        {
          "shape": "BadRequestException",
          "documentation": "<p>400 response</p>"
        }
      ],
      "documentation": "<p>Updates the AWS resources that are required to access the Amplify Admin UI.</p>"
    },
    "UpdateBackendJob": {
      "name": "UpdateBackendJob",
      "http": {
        "method": "POST",
        "requestUri": "/backend/{appId}/job/{backendEnvironmentName}/{jobId}",
        "responseCode": 200
      },
      "input": {
        "shape": "UpdateBackendJobRequest"
      },
      "output": {
        "shape": "UpdateBackendJobResponse",
        "documentation": "<p>200 response</p>"
      },
      "errors": [
        {
          "shape": "NotFoundException",
          "documentation": "<p>404 response</p>"
        },
        {
          "shape": "GatewayTimeoutException",
          "documentation": "<p>504 response</p>"
        },
        {
          "shape": "TooManyRequestsException",
          "documentation": "<p>429 response</p>"
        },
        {
          "shape": "BadRequestException",
          "documentation": "<p>400 response</p>"
        }
      ],
      "documentation": "<p>Updates a specific job.</p>"
    }
  },
  "shapes": {
    "AuthResources": {
      "type": "string",
      "enum": [
        "USER_POOL_ONLY",
        "IDENTITY_POOL_AND_USER_POOL"
      ]
    },
    "BackendAPIAppSyncAuthSettings": {
      "type": "structure",
      "members": {
        "CognitoUserPoolId": {
          "shape": "__string",
          "locationName": "cognitoUserPoolId",
          "documentation": "<p>The Amazon Cognito user pool ID, if Amazon Cognito is used as an authentication setting to access your data models.</p>"
        },
        "Description": {
          "shape": "__string",
          "locationName": "description",
          "documentation": "<p>The API key description for API_KEY, if it is used as an authentication mechanism to access your data models.</p>"
        },
        "ExpirationTime": {
          "shape": "__double",
          "locationName": "expirationTime",
          "documentation": "<p>The API key expiration time for API_KEY, if it is used as an authentication mechanism to access your data models.</p>"
        },
        "OpenIDAuthTTL": {
          "shape": "__string",
          "locationName": "openIDAuthTTL",
          "documentation": "<p>The expiry time for the OpenID authentication mechanism.</p>"
        },
        "OpenIDClientId": {
          "shape": "__string",
          "locationName": "openIDClientId",
          "documentation": "<p>The clientID for openID, if openID is used as an authentication setting to access your data models.</p>"
        },
        "OpenIDIatTTL": {
          "shape": "__string",
          "locationName": "openIDIatTTL",
          "documentation": "<p>The expiry time for the OpenID authentication mechanism.</p>"
        },
        "OpenIDIssueURL": {
          "shape": "__string",
          "locationName": "openIDIssueURL",
          "documentation": "<p>The openID issuer URL, if openID is used as an authentication setting to access your data models.</p>"
        },
        "OpenIDProviderName": {
          "shape": "__string",
          "locationName": "openIDProviderName",
          "documentation": "<p>The openID provider name, if openID is used as an authentication mechanism to access your data models.</p>"
        }
      },
      "documentation": "<p>The authentication settings for accessing provisioned data models in your Amplify project.</p>"
    },
    "BackendAPIAuthType": {
      "type": "structure",
      "members": {
        "Mode": {
          "shape": "Mode",
          "locationName": "mode",
          "documentation": "<p>Describes the authentication mode.</p>"
        },
        "Settings": {
          "shape": "BackendAPIAppSyncAuthSettings",
          "locationName": "settings",
          "documentation": "<p>Describes settings for the authentication mode.</p>"
        }
      },
      "documentation": "<p>Describes the auth types for your configured data models.</p>"
    },
    "BackendAPICodegenReqObj": {
      "type": "structure",
      "members": {
        "ResourceName": {
          "shape": "__string",
          "locationName": "resourceName",
          "documentation": "<p>The name of this resource.</p>"
        }
      },
      "documentation": "<p>The request object for this operation.</p>",
      "required": [
        "ResourceName"
      ]
    },
    "BackendAPICodegenRespObj": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "JobId": {
          "shape": "__string",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "Operation": {
          "shape": "__string",
          "locationName": "operation",
          "documentation": "<p>The name of the operation.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>The current status of the request.</p>"
        }
      },
      "documentation": "<p>The response object sent when a backend is created.</p>",
      "required": [
        "AppId",
        "BackendEnvironmentName"
      ]
    },
    "BackendAPIConflictResolution": {
      "type": "structure",
      "members": {
        "ResolutionStrategy": {
          "shape": "ResolutionStrategy",
          "locationName": "resolutionStrategy",
          "documentation": "<p>The strategy for conflict resolution.</p>"
        }
      },
      "documentation": "<p>Describes the conflict resolution configuration for the data model configured in your Amplify project.</p>"
    },
    "BackendAPIReqObj": {
      "type": "structure",
      "members": {
        "ResourceConfig": {
          "shape": "BackendAPIResourceConfig",
          "locationName": "resourceConfig",
          "documentation": "<p>Defines the resource configuration for the data model in your Amplify project.</p>"
        },
        "ResourceName": {
          "shape": "__string",
          "locationName": "resourceName",
          "documentation": "<p>The name of this resource.</p>"
        }
      },
      "documentation": "<p>The request object for this operation.</p>",
      "required": [
        "ResourceName"
      ]
    },
    "BackendAPIResourceConfig": {
      "type": "structure",
      "members": {
        "AdditionalAuthTypes": {
          "shape": "ListOfBackendAPIAuthType",
          "locationName": "additionalAuthTypes",
          "documentation": "<p>Additional authentication methods used to interact with your data models.</p>"
        },
        "ApiName": {
          "shape": "__string",
          "locationName": "apiName",
          "documentation": "<p>The API name used to interact with the data model, configured as a part of the Amplify project.</p>"
        },
        "ConflictResolution": {
          "shape": "BackendAPIConflictResolution",
          "locationName": "conflictResolution",
          "documentation": "<p>The conflict resolution strategy for your data stored in the data models.</p>"
        },
        "DefaultAuthType": {
          "shape": "BackendAPIAuthType",
          "locationName": "defaultAuthType",
          "documentation": "<p>The default authentication type for interacting with the configured data models in your Amplify project.</p>"
        },
        "Service": {
          "shape": "__string",
          "locationName": "service",
          "documentation": "<p>The service used to provision and interact with the data model.</p>"
        },
        "TransformSchema": {
          "shape": "__string",
          "locationName": "transformSchema",
          "documentation": "<p>The definition of the data model in the annotated transform of the GraphQL schema.</p>"
        }
      },
      "documentation": "<p>The resource configuration for the data model, configured as a part of the Amplify project.</p>"
    },
    "BackendAPIRespObj": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "JobId": {
          "shape": "__string",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "Operation": {
          "shape": "__string",
          "locationName": "operation",
          "documentation": "<p>The name of the operation.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>The current status of the request.</p>"
        }
      },
      "documentation": "<p>The response object sent when a backend is created.</p>",
      "required": [
        "AppId",
        "BackendEnvironmentName"
      ]
    },
    "BackendAuthRespObj": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "JobId": {
          "shape": "__string",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "Operation": {
          "shape": "__string",
          "locationName": "operation",
          "documentation": "<p>The name of the operation.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>The current status of the request.</p>"
        }
      },
      "documentation": "<p>The response object for this operation.</p>",
      "required": [
        "AppId",
        "BackendEnvironmentName"
      ]
    },
    "BackendAuthSocialProviderConfig": {
      "type": "structure",
      "members": {
        "ClientId": {
          "shape": "__string",
          "locationName": "client_id",
          "documentation": "<p>Describes the client_id that can be obtained from the third-party social federation provider.</p>"
        },
        "ClientSecret": {
          "shape": "__string",
          "locationName": "client_secret",
          "documentation": "<p>Describes the client_secret that can be obtained from third-party social federation providers.</p>"
        }
      },
      "documentation": "<p>Describes third-party social federation configurations for allowing your app users to sign in using OAuth.</p>"
    },
    "BackendConfigRespObj": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendManagerAppId": {
          "shape": "__string",
          "locationName": "backendManagerAppId",
          "documentation": "<p>The app ID for the backend manager.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "LoginAuthConfig": {
          "shape": "LoginAuthConfigReqObj",
          "locationName": "loginAuthConfig",
          "documentation": "<p>Describes the Amazon Cognito configurations for the Admin UI auth resource to log in with.</p>"
        }
      },
      "documentation": "<p>The response object for this operation.</p>"
    },
    "BackendJobReqObj": {
      "type": "structure",
      "members": {
        "Operation": {
          "shape": "__string",
          "locationName": "operation",
          "documentation": "<p>Filters the list of response objects to include only those with the specified operation name.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>Filters the list of response objects to include only those with the specified status.</p>"
        }
      },
      "documentation": "<p>The request object for this operation.</p>"
    },
    "BackendJobRespObj": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "CreateTime": {
          "shape": "__string",
          "locationName": "createTime",
          "documentation": "<p>The time when the job was created.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "JobId": {
          "shape": "__string",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "Operation": {
          "shape": "__string",
          "locationName": "operation",
          "documentation": "<p>The name of the operation.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>The current status of the request.</p>"
        },
        "UpdateTime": {
          "shape": "__string",
          "locationName": "updateTime",
          "documentation": "<p>The time when the job was last updated.</p>"
        }
      },
      "documentation": "<p>The response object for this operation.</p>",
      "required": [
        "AppId",
        "BackendEnvironmentName"
      ]
    },
    "BadRequestException": {
      "type": "structure",
      "members": {
        "Message": {
          "shape": "__string",
          "locationName": "message",
          "documentation": "<p>An error message to inform that the request failed.</p>"
        }
      },
      "documentation": "<p>An error returned if a request is not formed properly.</p>",
      "exception": true,
      "error": {
        "httpStatusCode": 400
      }
    },
    "CloneBackendReqObj": {
      "type": "structure",
      "members": {
        "TargetEnvironmentName": {
          "shape": "__string",
          "locationName": "targetEnvironmentName",
          "documentation": "<p>The name of the destination backend environment to be created.</p>"
        }
      },
      "documentation": "<p>The request object for this operation.</p>",
      "required": [
        "TargetEnvironmentName"
      ]
    },
    "CloneBackendRequest": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "location": "uri",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "TargetEnvironmentName": {
          "shape": "__string",
          "locationName": "targetEnvironmentName",
          "documentation": "<p>The name of the destination backend environment to be created.</p>"
        }
      },
      "documentation": "<p>The request body for CloneBackend.</p>",
      "required": [
        "AppId",
        "BackendEnvironmentName",
        "TargetEnvironmentName"
      ]
    },
    "CloneBackendRespObj": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "JobId": {
          "shape": "__string",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "Operation": {
          "shape": "__string",
          "locationName": "operation",
          "documentation": "<p>The name of the operation.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>The current status of the request.</p>"
        }
      },
      "documentation": "<p>The response object sent when a backend is created.</p>",
      "required": [
        "AppId",
        "BackendEnvironmentName"
      ]
    },
    "CloneBackendResponse": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "JobId": {
          "shape": "__string",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "Operation": {
          "shape": "__string",
          "locationName": "operation",
          "documentation": "<p>The name of the operation.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>The current status of the request.</p>"
        }
      }
    },
    "CreateBackendAPIReqObj": {
      "type": "structure",
      "members": {
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "ResourceConfig": {
          "shape": "BackendAPIResourceConfig",
          "locationName": "resourceConfig",
          "documentation": "<p>The resource configuration for this request.</p>"
        },
        "ResourceName": {
          "shape": "__string",
          "locationName": "resourceName",
          "documentation": "<p>The name of this resource.</p>"
        }
      },
      "documentation": "<p>The request object for this operation.</p>",
      "required": [
        "ResourceName",
        "BackendEnvironmentName",
        "ResourceConfig"
      ]
    },
    "CreateBackendAPIRequest": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "ResourceConfig": {
          "shape": "BackendAPIResourceConfig",
          "locationName": "resourceConfig",
          "documentation": "<p>The resource configuration for this request.</p>"
        },
        "ResourceName": {
          "shape": "__string",
          "locationName": "resourceName",
          "documentation": "<p>The name of this resource.</p>"
        }
      },
      "documentation": "<p>The request body for CreateBackendAPI.</p>",
      "required": [
        "AppId",
        "ResourceName",
        "BackendEnvironmentName",
        "ResourceConfig"
      ]
    },
    "CreateBackendAPIResponse": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "JobId": {
          "shape": "__string",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "Operation": {
          "shape": "__string",
          "locationName": "operation",
          "documentation": "<p>The name of the operation.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>The current status of the request.</p>"
        }
      }
    },
    "CreateBackendAuthForgotPasswordConfig": {
      "type": "structure",
      "members": {
        "DeliveryMethod": {
          "shape": "DeliveryMethod",
          "locationName": "deliveryMethod",
          "documentation": "<p>Describes which method to use (either SMS or email) to deliver messages to app users that want to recover their password.</p>"
        },
        "EmailSettings": {
          "shape": "EmailSettings",
          "locationName": "emailSettings",
          "documentation": "<p>The configuration for the email sent when an app user forgets their password.</p>"
        },
        "SmsSettings": {
          "shape": "SmsSettings",
          "locationName": "smsSettings",
          "documentation": "<p>The configuration for the SMS message sent when an app user forgets their password.</p>"
        }
      },
      "documentation": "<p>Describes the forgot password policy for authenticating into the Amplify app.</p>",
      "required": [
        "DeliveryMethod"
      ]
    },
    "CreateBackendAuthIdentityPoolConfig": {
      "type": "structure",
      "members": {
        "IdentityPoolName": {
          "shape": "__string",
          "locationName": "identityPoolName",
          "documentation": "<p>Name of the identity pool used for authorization.</p>"
        },
        "UnauthenticatedLogin": {
          "shape": "__boolean",
          "locationName": "unauthenticatedLogin",
          "documentation": "<p>Set to true or false based on whether you want to enable guest authorization to your Amplify app.</p>"
        }
      },
      "documentation": "<p>Describes authorization configurations for the auth resources, configured as a part of your Amplify project.</p>",
      "required": [
        "UnauthenticatedLogin",
        "IdentityPoolName"
      ]
    },
    "CreateBackendAuthMFAConfig": {
      "type": "structure",
      "members": {
        "MFAMode": {
          "shape": "MFAMode",
          "documentation": "<p>Describes whether MFA should be [ON, OFF, or OPTIONAL] for authentication in your Amplify project.</p>"
        },
        "Settings": {
          "shape": "Settings",
          "locationName": "settings",
          "documentation": "<p>Describes the configuration settings and methods for your Amplify app users to use MFA.</p>"
        }
      },
      "documentation": "<p>Describes whether to apply multi-factor authentication (MFA) policies for your Amazon Cognito user pool that's configured as a part of your Amplify project.</p>",
      "required": [
        "MFAMode"
      ]
    },
    "CreateBackendAuthOAuthConfig": {
      "type": "structure",
      "members": {
        "DomainPrefix": {
          "shape": "__string",
          "locationName": "domainPrefix",
          "documentation": "<p>The domain prefix for your Amplify app.</p>"
        },
        "OAuthGrantType": {
          "shape": "OAuthGrantType",
          "locationName": "oAuthGrantType",
          "documentation": "<p>The OAuth grant type that you use to allow app users to authenticate from your Amplify app.</p>"
        },
        "OAuthScopes": {
          "shape": "ListOfOAuthScopesElement",
          "locationName": "oAuthScopes",
          "documentation": "<p>List of OAuth-related flows that allow your app users to authenticate from your Amplify app.</p>"
        },
        "RedirectSignInURIs": {
          "shape": "ListOf__string",
          "locationName": "redirectSignInURIs",
          "documentation": "<p>The redirected URI for signing in to your Amplify app.</p>"
        },
        "RedirectSignOutURIs": {
          "shape": "ListOf__string",
          "locationName": "redirectSignOutURIs",
          "documentation": "<p>Redirect URLs that OAuth uses when a user signs out of an Amplify app.</p>"
        },
        "SocialProviderSettings": {
          "shape": "SocialProviderSettings",
          "locationName": "socialProviderSettings",
          "documentation": "<p>The settings for using social identity providers for access to your Amplify app.</p>"
        }
      },
      "documentation": "<p>Creates the OAuth configuration for your Amplify project.</p>",
      "required": [
        "RedirectSignOutURIs",
        "RedirectSignInURIs",
        "OAuthGrantType",
        "OAuthScopes"
      ]
    },
    "CreateBackendAuthPasswordPolicyConfig": {
      "type": "structure",
      "members": {
        "AdditionalConstraints": {
          "shape": "ListOfAdditionalConstraintsElement",
          "locationName": "additionalConstraints",
          "documentation": "<p>Additional constraints for the password used to access the backend of your Amplify project.</p>"
        },
        "MinimumLength": {
          "shape": "__double",
          "locationName": "minimumLength",
          "documentation": "<p>The minimum length of the password used to access the backend of your Amplify project.</p>"
        }
      },
      "documentation": "<p>The password policy configuration for the backend of your Amplify project.</p>",
      "required": [
        "MinimumLength"
      ]
    },
    "CreateBackendAuthReqObj": {
      "type": "structure",
      "members": {
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "ResourceConfig": {
          "shape": "CreateBackendAuthResourceConfig",
          "locationName": "resourceConfig",
          "documentation": "<p>The resource configuration for this request object.</p>"
        },
        "ResourceName": {
          "shape": "__string",
          "locationName": "resourceName",
          "documentation": "<p>The name of this resource.</p>"
        }
      },
      "documentation": "<p>The request object for this operation.</p>",
      "required": [
        "ResourceName",
        "BackendEnvironmentName",
        "ResourceConfig"
      ]
    },
    "CreateBackendAuthRequest": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "ResourceConfig": {
          "shape": "CreateBackendAuthResourceConfig",
          "locationName": "resourceConfig",
          "documentation": "<p>The resource configuration for this request object.</p>"
        },
        "ResourceName": {
          "shape": "__string",
          "locationName": "resourceName",
          "documentation": "<p>The name of this resource.</p>"
        }
      },
      "documentation": "<p>The request body for CreateBackendAuth.</p>",
      "required": [
        "AppId",
        "ResourceName",
        "BackendEnvironmentName",
        "ResourceConfig"
      ]
    },
    "CreateBackendAuthResourceConfig": {
      "type": "structure",
      "members": {
        "AuthResources": {
          "shape": "AuthResources",
          "locationName": "authResources",
          "documentation": "<p>Defines whether you want to configure only authentication or both authentication and authorization settings.</p>"
        },
        "IdentityPoolConfigs": {
          "shape": "CreateBackendAuthIdentityPoolConfig",
          "locationName": "identityPoolConfigs",
          "documentation": "<p>Describes the authorization configuration for the Amazon Cognito identity pool, provisioned as a part of the auth resource in your Amplify project.</p>"
        },
        "Service": {
          "shape": "Service",
          "locationName": "service",
          "documentation": "<p>Defines the service name to use when configuring an authentication resource in your Amplify project.</p>"
        },
        "UserPoolConfigs": {
          "shape": "CreateBackendAuthUserPoolConfig",
          "locationName": "userPoolConfigs",
          "documentation": "<p>Describes the authentication configuration for the Amazon Cognito user pool, provisioned as a part of the auth resource in your Amplify project.</p>"
        }
      },
      "documentation": "<p>Defines the resource configuration when creating an auth resource in your Amplify project.</p>",
      "required": [
        "AuthResources",
        "UserPoolConfigs",
        "Service"
      ]
    },
    "CreateBackendAuthResponse": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "JobId": {
          "shape": "__string",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "Operation": {
          "shape": "__string",
          "locationName": "operation",
          "documentation": "<p>The name of the operation.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>The current status of the request.</p>"
        }
      }
    },
    "CreateBackendAuthUserPoolConfig": {
      "type": "structure",
      "members": {
        "ForgotPassword": {
          "shape": "CreateBackendAuthForgotPasswordConfig",
          "locationName": "forgotPassword",
          "documentation": "<p>Describes the forgotten password policy for your Amazon Cognito user pool, configured as a part of your Amplify project.</p>"
        },
        "Mfa": {
          "shape": "CreateBackendAuthMFAConfig",
          "locationName": "mfa",
          "documentation": "<p>Describes whether to apply multi-factor authentication (MFA) policies for your Amazon Cognito user pool that's configured as a part of your Amplify project.</p>"
        },
        "OAuth": {
          "shape": "CreateBackendAuthOAuthConfig",
          "locationName": "oAuth",
          "documentation": "<p>Describes the OAuth policy and rules for your Amazon Cognito user pool, configured as a part of your Amplify project.</p>"
        },
        "PasswordPolicy": {
          "shape": "CreateBackendAuthPasswordPolicyConfig",
          "locationName": "passwordPolicy",
          "documentation": "<p>Describes the password policy for your Amazon Cognito user pool, configured as a part of your Amplify project.</p>"
        },
        "RequiredSignUpAttributes": {
          "shape": "ListOfRequiredSignUpAttributesElement",
          "locationName": "requiredSignUpAttributes",
          "documentation": "<p>The required attributes to sign up new users in the Amazon Cognito user pool.</p>"
        },
        "SignInMethod": {
          "shape": "SignInMethod",
          "locationName": "signInMethod",
          "documentation": "<p>Describes the sign-in methods that your Amplify app users to log in using the Amazon Cognito user pool that's configured as a part of your Amplify project.</p>"
        },
        "UserPoolName": {
          "shape": "__string",
          "locationName": "userPoolName",
          "documentation": "<p>The Amazon Cognito user pool name.</p>"
        }
      },
      "documentation": "<p>Describes the Amazon Cognito user pool configuration for the auth resource to be configured for your Amplify project.</p>",
      "required": [
        "RequiredSignUpAttributes",
        "SignInMethod",
        "UserPoolName"
      ]
    },
    "CreateBackendConfigReqObj": {
      "type": "structure",
      "members": {
        "BackendManagerAppId": {
          "shape": "__string",
          "locationName": "backendManagerAppId",
          "documentation": "<p>The app ID for the backend manager.</p>"
        }
      },
      "documentation": "<p>The request object for this operation.</p>"
    },
    "CreateBackendConfigRequest": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendManagerAppId": {
          "shape": "__string",
          "locationName": "backendManagerAppId",
          "documentation": "<p>The app ID for the backend manager.</p>"
        }
      },
      "documentation": "<p>The request body for CreateBackendConfig.</p>",
      "required": [
        "AppId"
      ]
    },
    "CreateBackendConfigRespObj": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "JobId": {
          "shape": "__string",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>The current status of the request.</p>"
        }
      },
      "documentation": "<p>The response object for this operation.</p>",
      "required": [
        "AppId"
      ]
    },
    "CreateBackendConfigResponse": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "JobId": {
          "shape": "__string",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>The current status of the request.</p>"
        }
      }
    },
    "CreateBackendReqObj": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "AppName": {
          "shape": "__string",
          "locationName": "appName",
          "documentation": "<p>The name of the app.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "ResourceConfig": {
          "shape": "ResourceConfig",
          "locationName": "resourceConfig",
          "documentation": "<p>The resource configuration for the backend creation request.</p>"
        },
        "ResourceName": {
          "shape": "__string",
          "locationName": "resourceName",
          "documentation": "<p>The name of the resource.</p>"
        }
      },
      "documentation": "<p>The request object for this operation.</p>",
      "required": [
        "AppId",
        "BackendEnvironmentName",
        "AppName"
      ]
    },
    "CreateBackendRequest": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "AppName": {
          "shape": "__string",
          "locationName": "appName",
          "documentation": "<p>The name of the app.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "ResourceConfig": {
          "shape": "ResourceConfig",
          "locationName": "resourceConfig",
          "documentation": "<p>The resource configuration for the backend creation request.</p>"
        },
        "ResourceName": {
          "shape": "__string",
          "locationName": "resourceName",
          "documentation": "<p>The name of the resource.</p>"
        }
      },
      "documentation": "<p>The request body for CreateBackend.</p>",
      "required": [
        "AppId",
        "BackendEnvironmentName",
        "AppName"
      ]
    },
    "CreateBackendRespObj": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "JobId": {
          "shape": "__string",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "Operation": {
          "shape": "__string",
          "locationName": "operation",
          "documentation": "<p>The name of the operation.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>The current status of the request.</p>"
        }
      },
      "documentation": "<p>The response object sent when a backend is created.</p>",
      "required": [
        "AppId",
        "BackendEnvironmentName"
      ]
    },
    "CreateBackendResponse": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "JobId": {
          "shape": "__string",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "Operation": {
          "shape": "__string",
          "locationName": "operation",
          "documentation": "<p>The name of the operation.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>The current status of the request.</p>"
        }
      }
    },
    "CreateTokenRequest": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        }
      },
      "required": [
        "AppId"
      ]
    },
    "CreateTokenRespObj": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "ChallengeCode": {
          "shape": "__string",
          "locationName": "challengeCode",
          "documentation": "<p>One-time challenge code for authenticating into the Amplify Admin UI.</p>"
        },
        "SessionId": {
          "shape": "__string",
          "locationName": "sessionId",
          "documentation": "<p>A unique ID provided when creating a new challenge token.</p>"
        },
        "Ttl": {
          "shape": "__string",
          "locationName": "ttl",
          "documentation": "<p>The expiry time for the one-time generated token code.</p>"
        }
      },
      "documentation": "<p>The response object for this operation.</p>",
      "required": [
        "AppId",
        "Ttl",
        "SessionId",
        "ChallengeCode"
      ]
    },
    "CreateTokenResponse": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "ChallengeCode": {
          "shape": "__string",
          "locationName": "challengeCode",
          "documentation": "<p>One-time challenge code for authenticating into the Amplify Admin UI.</p>"
        },
        "SessionId": {
          "shape": "__string",
          "locationName": "sessionId",
          "documentation": "<p>A unique ID provided when creating a new challenge token.</p>"
        },
        "Ttl": {
          "shape": "__string",
          "locationName": "ttl",
          "documentation": "<p>The expiry time for the one-time generated token code.</p>"
        }
      }
    },
    "DeleteBackendAPIRequest": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "location": "uri",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "ResourceConfig": {
          "shape": "BackendAPIResourceConfig",
          "locationName": "resourceConfig",
          "documentation": "<p>Defines the resource configuration for the data model in your Amplify project.</p>"
        },
        "ResourceName": {
          "shape": "__string",
          "locationName": "resourceName",
          "documentation": "<p>The name of this resource.</p>"
        }
      },
      "documentation": "<p>The request body for DeleteBackendAPI.</p>",
      "required": [
        "AppId",
        "BackendEnvironmentName",
        "ResourceName"
      ]
    },
    "DeleteBackendAPIResponse": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "JobId": {
          "shape": "__string",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "Operation": {
          "shape": "__string",
          "locationName": "operation",
          "documentation": "<p>The name of the operation.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>The current status of the request.</p>"
        }
      }
    },
    "DeleteBackendAuthRequest": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "location": "uri",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "ResourceName": {
          "shape": "__string",
          "locationName": "resourceName",
          "documentation": "<p>The name of this resource.</p>"
        }
      },
      "documentation": "<p>The request body for DeleteBackendAuth.</p>",
      "required": [
        "AppId",
        "BackendEnvironmentName",
        "ResourceName"
      ]
    },
    "DeleteBackendAuthResponse": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "JobId": {
          "shape": "__string",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "Operation": {
          "shape": "__string",
          "locationName": "operation",
          "documentation": "<p>The name of the operation.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>The current status of the request.</p>"
        }
      }
    },
    "DeleteBackendRequest": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "location": "uri",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        }
      },
      "required": [
        "AppId",
        "BackendEnvironmentName"
      ]
    },
    "DeleteBackendRespObj": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "JobId": {
          "shape": "__string",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "Operation": {
          "shape": "__string",
          "locationName": "operation",
          "documentation": "<p>The name of the operation.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>The current status of the request.</p>"
        }
      },
      "documentation": "<p>The returned object for a request to delete a backend.</p>",
      "required": [
        "AppId",
        "BackendEnvironmentName"
      ]
    },
    "DeleteBackendResponse": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "JobId": {
          "shape": "__string",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "Operation": {
          "shape": "__string",
          "locationName": "operation",
          "documentation": "<p>The name of the operation.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>The current status of the request.</p>"
        }
      }
    },
    "DeleteTokenRequest": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "SessionId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "sessionId",
          "documentation": "<p>The session ID.</p>"
        }
      },
      "required": [
        "SessionId",
        "AppId"
      ]
    },
    "DeleteTokenRespObj": {
      "type": "structure",
      "members": {
        "IsSuccess": {
          "shape": "__boolean",
          "locationName": "isSuccess",
          "documentation": "<p>Indicates whether the request succeeded or failed.</p>"
        }
      },
      "documentation": "<p>The response object for this operation.</p>",
      "required": [
        "IsSuccess"
      ]
    },
    "DeleteTokenResponse": {
      "type": "structure",
      "members": {
        "IsSuccess": {
          "shape": "__boolean",
          "locationName": "isSuccess",
          "documentation": "<p>Indicates whether the request succeeded or failed.</p>"
        }
      }
    },
    "DeliveryMethod": {
      "type": "string",
      "enum": [
        "EMAIL",
        "SMS"
      ]
    },
    "EmailSettings": {
      "type": "structure",
      "members": {
        "EmailMessage": {
          "shape": "__string",
          "locationName": "emailMessage",
          "documentation": "<p>The body of the email.</p>"
        },
        "EmailSubject": {
          "shape": "__string",
          "locationName": "emailSubject",
          "documentation": "<p>The subject of the email.</p>"
        }
      },
      "documentation": "<p>The configuration for the email sent when an app user forgets their password.</p>"
    },
    "GatewayTimeoutException": {
      "type": "structure",
      "members": {
        "Message": {
          "shape": "__string",
          "locationName": "message",
          "documentation": "<p>An error message to inform that the request failed.</p>"
        }
      },
      "documentation": "<p>An error returned if there's a temporary issue with the service.</p>",
      "exception": true,
      "error": {
        "httpStatusCode": 504
      }
    },
    "GenerateBackendAPIModelsRequest": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "location": "uri",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "ResourceName": {
          "shape": "__string",
          "locationName": "resourceName",
          "documentation": "<p>The name of this resource.</p>"
        }
      },
      "documentation": "<p>The request body for GenerateBackendAPIModels.</p>",
      "required": [
        "AppId",
        "BackendEnvironmentName",
        "ResourceName"
      ]
    },
    "GenerateBackendAPIModelsResponse": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "JobId": {
          "shape": "__string",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "Operation": {
          "shape": "__string",
          "locationName": "operation",
          "documentation": "<p>The name of the operation.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>The current status of the request.</p>"
        }
      }
    },
    "GetBackendAPICodegenRespObj": {
      "type": "structure",
      "members": {
        "Models": {
          "shape": "__string",
          "locationName": "models",
          "documentation": "<p>Stringified JSON of the DataStore model.</p>"
        },
        "Status": {
          "shape": "Status",
          "locationName": "status",
          "documentation": "<p>The current status of the request.</p>"
        }
      },
      "documentation": "<p>The response object for this operation.</p>"
    },
    "GetBackendAPIModelsRequest": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "location": "uri",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "ResourceName": {
          "shape": "__string",
          "locationName": "resourceName",
          "documentation": "<p>The name of this resource.</p>"
        }
      },
      "documentation": "<p>The request body for GetBackendAPIModels.</p>",
      "required": [
        "AppId",
        "BackendEnvironmentName",
        "ResourceName"
      ]
    },
    "GetBackendAPIModelsResponse": {
      "type": "structure",
      "members": {
        "Models": {
          "shape": "__string",
          "locationName": "models",
          "documentation": "<p>Stringified JSON of the DataStore model.</p>"
        },
        "Status": {
          "shape": "Status",
          "locationName": "status",
          "documentation": "<p>The current status of the request.</p>"
        }
      }
    },
    "GetBackendAPIRequest": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "location": "uri",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "ResourceConfig": {
          "shape": "BackendAPIResourceConfig",
          "locationName": "resourceConfig",
          "documentation": "<p>Defines the resource configuration for the data model in your Amplify project.</p>"
        },
        "ResourceName": {
          "shape": "__string",
          "locationName": "resourceName",
          "documentation": "<p>The name of this resource.</p>"
        }
      },
      "documentation": "<p>The request body for GetBackendAPI.</p>",
      "required": [
        "AppId",
        "BackendEnvironmentName",
        "ResourceName"
      ]
    },
    "GetBackendAPIRespObj": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "ResourceConfig": {
          "shape": "BackendAPIResourceConfig",
          "locationName": "resourceConfig",
          "documentation": "<p>The resource configuration for this response object.</p>"
        },
        "ResourceName": {
          "shape": "__string",
          "locationName": "resourceName",
          "documentation": "<p>The name of this resource.</p>"
        }
      },
      "documentation": "<p>The response object for this operation.</p>",
      "required": [
        "AppId",
        "BackendEnvironmentName"
      ]
    },
    "GetBackendAPIResponse": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "ResourceConfig": {
          "shape": "BackendAPIResourceConfig",
          "locationName": "resourceConfig",
          "documentation": "<p>The resource configuration for this response object.</p>"
        },
        "ResourceName": {
          "shape": "__string",
          "locationName": "resourceName",
          "documentation": "<p>The name of this resource.</p>"
        }
      }
    },
    "GetBackendAuthReqObj": {
      "type": "structure",
      "members": {
        "ResourceName": {
          "shape": "__string",
          "locationName": "resourceName",
          "documentation": "<p>The name of this resource.</p>"
        }
      },
      "documentation": "<p>The request object for this operation.</p>",
      "required": [
        "ResourceName"
      ]
    },
    "GetBackendAuthRequest": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "location": "uri",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "ResourceName": {
          "shape": "__string",
          "locationName": "resourceName",
          "documentation": "<p>The name of this resource.</p>"
        }
      },
      "documentation": "<p>The request body for GetBackendAuth.</p>",
      "required": [
        "AppId",
        "BackendEnvironmentName",
        "ResourceName"
      ]
    },
    "GetBackendAuthRespObj": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "ResourceConfig": {
          "shape": "CreateBackendAuthResourceConfig",
          "locationName": "resourceConfig",
          "documentation": "<p>The resource configuration for authorization requests to the backend of your Amplify project.</p>"
        },
        "ResourceName": {
          "shape": "__string",
          "locationName": "resourceName",
          "documentation": "<p>The name of this resource.</p>"
        }
      },
      "documentation": "<p>The response object for this operation.</p>",
      "required": [
        "AppId",
        "BackendEnvironmentName"
      ]
    },
    "GetBackendAuthResponse": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "ResourceConfig": {
          "shape": "CreateBackendAuthResourceConfig",
          "locationName": "resourceConfig",
          "documentation": "<p>The resource configuration for authorization requests to the backend of your Amplify project.</p>"
        },
        "ResourceName": {
          "shape": "__string",
          "locationName": "resourceName",
          "documentation": "<p>The name of this resource.</p>"
        }
      }
    },
    "GetBackendJobRequest": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "location": "uri",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "JobId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        }
      },
      "required": [
        "AppId",
        "BackendEnvironmentName",
        "JobId"
      ]
    },
    "GetBackendJobResponse": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "CreateTime": {
          "shape": "__string",
          "locationName": "createTime",
          "documentation": "<p>The time when the job was created.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "JobId": {
          "shape": "__string",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "Operation": {
          "shape": "__string",
          "locationName": "operation",
          "documentation": "<p>The name of the operation.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>The current status of the request.</p>"
        },
        "UpdateTime": {
          "shape": "__string",
          "locationName": "updateTime",
          "documentation": "<p>The time when the job was last updated.</p>"
        }
      }
    },
    "GetBackendReqObj": {
      "type": "structure",
      "members": {
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        }
      },
      "documentation": "<p>The request object for this operation.</p>"
    },
    "GetBackendRequest": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        }
      },
      "documentation": "<p>The request body for GetBackend.</p>",
      "required": [
        "AppId"
      ]
    },
    "GetBackendRespObj": {
      "type": "structure",
      "members": {
        "AmplifyMetaConfig": {
          "shape": "__string",
          "locationName": "amplifyMetaConfig",
          "documentation": "<p>A stringified version of the current configurations for your Amplify project.</p>"
        },
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "AppName": {
          "shape": "__string",
          "locationName": "appName",
          "documentation": "<p>The name of the app.</p>"
        },
        "BackendEnvironmentList": {
          "shape": "ListOf__string",
          "locationName": "backendEnvironmentList",
          "documentation": "<p>A list of backend environments in an array.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        }
      },
      "documentation": "<p>The response object for this operation.</p>",
      "required": [
        "AppId"
      ]
    },
    "GetBackendResponse": {
      "type": "structure",
      "members": {
        "AmplifyMetaConfig": {
          "shape": "__string",
          "locationName": "amplifyMetaConfig",
          "documentation": "<p>A stringified version of the current configurations for your Amplify project.</p>"
        },
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "AppName": {
          "shape": "__string",
          "locationName": "appName",
          "documentation": "<p>The name of the app.</p>"
        },
        "BackendEnvironmentList": {
          "shape": "ListOf__string",
          "locationName": "backendEnvironmentList",
          "documentation": "<p>A list of backend environments in an array.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        }
      }
    },
    "GetTokenRequest": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "SessionId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "sessionId",
          "documentation": "<p>The session ID.</p>"
        }
      },
      "required": [
        "SessionId",
        "AppId"
      ]
    },
    "GetTokenRespObj": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "ChallengeCode": {
          "shape": "__string",
          "locationName": "challengeCode",
          "documentation": "<p>The one-time challenge code for authenticating into the Amplify Admin UI.</p>"
        },
        "SessionId": {
          "shape": "__string",
          "locationName": "sessionId",
          "documentation": "<p>A unique ID provided when creating a new challenge token.</p>"
        },
        "Ttl": {
          "shape": "__string",
          "locationName": "ttl",
          "documentation": "<p>The expiry time for the one-time generated token code.</p>"
        }
      },
      "documentation": "<p>The response object for this operation.</p>",
      "required": [
        "AppId",
        "Ttl",
        "SessionId",
        "ChallengeCode"
      ]
    },
    "GetTokenResponse": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "ChallengeCode": {
          "shape": "__string",
          "locationName": "challengeCode",
          "documentation": "<p>The one-time challenge code for authenticating into the Amplify Admin UI.</p>"
        },
        "SessionId": {
          "shape": "__string",
          "locationName": "sessionId",
          "documentation": "<p>A unique ID provided when creating a new challenge token.</p>"
        },
        "Ttl": {
          "shape": "__string",
          "locationName": "ttl",
          "documentation": "<p>The expiry time for the one-time generated token code.</p>"
        }
      }
    },
    "InternalServiceException": {
      "type": "structure",
      "members": {
        "Message": {
          "shape": "__string",
          "locationName": "message",
          "documentation": "<p>An error message to inform that the request failed.</p>"
        }
      },
      "documentation": "<p>An error returned if there's a temporary issue with the service.</p>"
    },
    "LimitExceededException": {
      "type": "structure",
      "members": {
        "LimitType": {
          "shape": "__string",
          "locationName": "limitType",
          "documentation": "<p>The type of limit that was exceeded.</p>"
        },
        "Message": {
          "shape": "__string",
          "locationName": "message",
          "documentation": "<p>An error message to inform that the request failed.</p>"
        }
      },
      "documentation": "<p>An error that is returned when a limit of a specific type is exceeded.</p>"
    },
    "ListBackendJobReqObj": {
      "type": "structure",
      "members": {
        "JobId": {
          "shape": "__string",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "MaxResults": {
          "shape": "__integerMin1Max25",
          "locationName": "maxResults",
          "documentation": "<p>The maximum number of results that you want in the response.</p>"
        },
        "NextToken": {
          "shape": "__string",
          "locationName": "nextToken",
          "documentation": "<p>The token for the next set of results.</p>"
        },
        "Operation": {
          "shape": "__string",
          "locationName": "operation",
          "documentation": "<p>Filters the list of response objects to include only those with the specified operation name.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>Filters the list of response objects to include only those with the specified status.</p>"
        }
      },
      "documentation": "<p>The request object for this operation.</p>"
    },
    "ListBackendJobRespObj": {
      "type": "structure",
      "members": {
        "Jobs": {
          "shape": "ListOfBackendJobRespObj",
          "locationName": "jobs",
          "documentation": "<p>An array of jobs and their properties.</p>"
        },
        "NextToken": {
          "shape": "__string",
          "locationName": "nextToken",
          "documentation": "<p>The token for the next set of results.</p>"
        }
      },
      "documentation": "<p>The returned list of backend jobs.</p>"
    },
    "ListBackendJobsRequest": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "location": "uri",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "JobId": {
          "shape": "__string",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "MaxResults": {
          "shape": "__integerMin1Max25",
          "locationName": "maxResults",
          "documentation": "<p>The maximum number of results that you want in the response.</p>"
        },
        "NextToken": {
          "shape": "__string",
          "locationName": "nextToken",
          "documentation": "<p>The token for the next set of results.</p>"
        },
        "Operation": {
          "shape": "__string",
          "locationName": "operation",
          "documentation": "<p>Filters the list of response objects to include only those with the specified operation name.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>Filters the list of response objects to include only those with the specified status.</p>"
        }
      },
      "documentation": "<p>The request body for ListBackendJobs.</p>",
      "required": [
        "AppId",
        "BackendEnvironmentName"
      ]
    },
    "ListBackendJobsResponse": {
      "type": "structure",
      "members": {
        "Jobs": {
          "shape": "ListOfBackendJobRespObj",
          "locationName": "jobs",
          "documentation": "<p>An array of jobs and their properties.</p>"
        },
        "NextToken": {
          "shape": "__string",
          "locationName": "nextToken",
          "documentation": "<p>The token for the next set of results.</p>"
        }
      }
    },
    "LoginAuthConfigReqObj": {
      "type": "structure",
      "members": {
        "AwsCognitoIdentityPoolId": {
          "shape": "__string",
          "locationName": "aws_cognito_identity_pool_id",
          "documentation": "<p>The Amazon Cognito identity pool ID used for Amplify Admin UI login authorization.</p>"
        },
        "AwsCognitoRegion": {
          "shape": "__string",
          "locationName": "aws_cognito_region",
          "documentation": "<p>The AWS Region for the Amplify Admin UI login.</p>"
        },
        "AwsUserPoolsId": {
          "shape": "__string",
          "locationName": "aws_user_pools_id",
          "documentation": "<p>The Amazon Cognito user pool ID used for Amplify Admin UI login authentication.</p>"
        },
        "AwsUserPoolsWebClientId": {
          "shape": "__string",
          "locationName": "aws_user_pools_web_client_id",
          "documentation": "<p>The web client ID for the Amazon Cognito user pools.</p>"
        }
      },
      "documentation": "<p>The request object for this operation.</p>"
    },
    "MFAMode": {
      "type": "string",
      "enum": [
        "ON",
        "OFF",
        "OPTIONAL"
      ]
    },
    "Mode": {
      "type": "string",
      "enum": [
        "API_KEY",
        "AWS_IAM",
        "AMAZON_COGNITO_USER_POOLS",
        "OPENID_CONNECT"
      ]
    },
    "NotFoundException": {
      "type": "structure",
      "members": {
        "Message": {
          "shape": "__string",
          "locationName": "message",
          "documentation": "<p>An error message to inform that the request failed.</p>"
        },
        "ResourceType": {
          "shape": "__string",
          "locationName": "resourceType",
          "documentation": "<p>The type of resource that wasn't found.</p>"
        }
      },
      "documentation": "<p>An error returned when a specific resource type is not found.</p>",
      "exception": true,
      "error": {
        "httpStatusCode": 404
      }
    },
    "OAuthGrantType": {
      "type": "string",
      "enum": [
        "CODE",
        "IMPLICIT"
      ]
    },
    "RemoveAllBackendsReqObj": {
      "type": "structure",
      "members": {
        "CleanAmplifyApp": {
          "shape": "__boolean",
          "locationName": "cleanAmplifyApp",
          "documentation": "<p>Cleans up the Amplify Console app if this value is set to true.</p>"
        }
      },
      "documentation": "<p>The request object for this operation.</p>"
    },
    "RemoveAllBackendsRequest": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "CleanAmplifyApp": {
          "shape": "__boolean",
          "locationName": "cleanAmplifyApp",
          "documentation": "<p>Cleans up the Amplify Console app if this value is set to true.</p>"
        }
      },
      "documentation": "<p>The request body for RemoveAllBackends.</p>",
      "required": [
        "AppId"
      ]
    },
    "RemoveAllBackendsRespObj": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "JobId": {
          "shape": "__string",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "Operation": {
          "shape": "__string",
          "locationName": "operation",
          "documentation": "<p>The name of the operation.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>The current status of the request.</p>"
        }
      },
      "documentation": "<p>The response object for this operation.</p>",
      "required": [
        "AppId"
      ]
    },
    "RemoveAllBackendsResponse": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "JobId": {
          "shape": "__string",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "Operation": {
          "shape": "__string",
          "locationName": "operation",
          "documentation": "<p>The name of the operation.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>The current status of the request.</p>"
        }
      }
    },
    "RemoveBackendAuthReqObj": {
      "type": "structure",
      "members": {
        "ResourceName": {
          "shape": "__string",
          "locationName": "resourceName",
          "documentation": "<p>The name of this resource.</p>"
        }
      },
      "documentation": "<p>The request object for this operation.</p>",
      "required": [
        "ResourceName"
      ]
    },
    "RemoveBackendConfigRequest": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        }
      },
      "required": [
        "AppId"
      ]
    },
    "RemoveBackendConfigRespObj": {
      "type": "structure",
      "members": {
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        }
      },
      "documentation": "<p>The response object for this operation.</p>"
    },
    "RemoveBackendConfigResponse": {
      "type": "structure",
      "members": {
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        }
      }
    },
    "ResolutionStrategy": {
      "type": "string",
      "enum": [
        "OPTIMISTIC_CONCURRENCY",
        "LAMBDA",
        "AUTOMERGE",
        "NONE"
      ]
    },
    "ResourceConfig": {
      "type": "structure",
      "members": {},
      "documentation": "<p>Defines the resource configuration for the data model in your Amplify project.</p>"
    },
    "Service": {
      "type": "string",
      "enum": [
        "COGNITO"
      ]
    },
    "Settings": {
      "type": "structure",
      "members": {
        "MfaTypes": {
          "shape": "ListOfMfaTypesElement",
          "locationName": "mfaTypes",
          "documentation": "<p>The supported MFA types.</p>"
        },
        "SmsMessage": {
          "shape": "__string",
          "locationName": "smsMessage",
          "documentation": "<p>The body of the SMS message.</p>"
        }
      },
      "documentation": "<p>The settings of your MFA configuration for the backend of your Amplify project.</p>"
    },
    "SignInMethod": {
      "type": "string",
      "enum": [
        "EMAIL",
        "EMAIL_AND_PHONE_NUMBER",
        "PHONE_NUMBER",
        "USERNAME"
      ]
    },
    "SmsSettings": {
      "type": "structure",
      "members": {
        "SmsMessage": {
          "shape": "__string",
          "locationName": "smsMessage",
          "documentation": "<p>The body of the SMS message.</p>"
        }
      },
      "documentation": "<p>SMS settings for authentication.</p>"
    },
    "SocialProviderSettings": {
      "type": "structure",
      "members": {
        "Facebook": {
          "shape": "BackendAuthSocialProviderConfig"
        },
        "Google": {
          "shape": "BackendAuthSocialProviderConfig"
        },
        "LoginWithAmazon": {
          "shape": "BackendAuthSocialProviderConfig"
        }
      },
      "documentation": "<p>The settings for using the social identity providers for access to your Amplify app.</p>"
    },
    "Status": {
      "type": "string",
      "enum": [
        "LATEST",
        "STALE"
      ]
    },
    "TooManyRequestsException": {
      "type": "structure",
      "members": {
        "LimitType": {
          "shape": "__string",
          "locationName": "limitType",
          "documentation": "<p>The type of limit that was exceeded.</p>"
        },
        "Message": {
          "shape": "__string",
          "locationName": "message",
          "documentation": "<p>An error message to inform that the request failed.</p>"
        }
      },
      "documentation": "<p>An error that is returned when a limit of a specific type is exceeded.</p>",
      "exception": true,
      "error": {
        "httpStatusCode": 429
      }
    },
    "UpdateBackendAPIRequest": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "location": "uri",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "ResourceConfig": {
          "shape": "BackendAPIResourceConfig",
          "locationName": "resourceConfig",
          "documentation": "<p>Defines the resource configuration for the data model in your Amplify project.</p>"
        },
        "ResourceName": {
          "shape": "__string",
          "locationName": "resourceName",
          "documentation": "<p>The name of this resource.</p>"
        }
      },
      "documentation": "<p>The request body for UpdateBackendAPI.</p>",
      "required": [
        "AppId",
        "BackendEnvironmentName",
        "ResourceName"
      ]
    },
    "UpdateBackendAPIResponse": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "JobId": {
          "shape": "__string",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "Operation": {
          "shape": "__string",
          "locationName": "operation",
          "documentation": "<p>The name of the operation.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>The current status of the request.</p>"
        }
      }
    },
    "UpdateBackendAuthForgotPasswordConfig": {
      "type": "structure",
      "members": {
        "DeliveryMethod": {
          "shape": "DeliveryMethod",
          "locationName": "deliveryMethod",
          "documentation": "<p>Describes which method to use (either SMS or email) to deliver messages to app users that want to recover their password.</p>"
        },
        "EmailSettings": {
          "shape": "EmailSettings",
          "locationName": "emailSettings",
          "documentation": "<p>The configuration for the email sent when an app user forgets their password.</p>"
        },
        "SmsSettings": {
          "shape": "SmsSettings",
          "locationName": "smsSettings",
          "documentation": "<p>The configuration for the SMS message sent when an Amplify app user forgets their password.</p>"
        }
      },
      "documentation": "<p>Describes the forgot password policy for authenticating into the Amplify app.</p>"
    },
    "UpdateBackendAuthIdentityPoolConfig": {
      "type": "structure",
      "members": {
        "UnauthenticatedLogin": {
          "shape": "__boolean",
          "locationName": "unauthenticatedLogin",
          "documentation": "<p>A Boolean value that you can set to allow or disallow guest-level authorization into your Amplify app.</p>"
        }
      },
      "documentation": "<p>Describes the authorization configuration for the Amazon Cognito identity pool, provisioned as a part of your auth resource in the Amplify project.</p>"
    },
    "UpdateBackendAuthMFAConfig": {
      "type": "structure",
      "members": {
        "MFAMode": {
          "shape": "MFAMode",
          "documentation": "<p>The MFA mode for the backend of your Amplify project.</p>"
        },
        "Settings": {
          "shape": "Settings",
          "locationName": "settings",
          "documentation": "<p>The settings of your MFA configuration for the backend of your Amplify project.</p>"
        }
      },
      "documentation": "<p>Updates the multi-factor authentication (MFA) configuration for the backend of your Amplify project.</p>"
    },
    "UpdateBackendAuthOAuthConfig": {
      "type": "structure",
      "members": {
        "DomainPrefix": {
          "shape": "__string",
          "locationName": "domainPrefix",
          "documentation": "<p>The Amazon Cognito domain prefix used to create a hosted UI for authentication.</p>"
        },
        "OAuthGrantType": {
          "shape": "OAuthGrantType",
          "locationName": "oAuthGrantType",
          "documentation": "<p>The OAuth grant type to allow app users to authenticate from your Amplify app.</p>"
        },
        "OAuthScopes": {
          "shape": "ListOfOAuthScopesElement",
          "locationName": "oAuthScopes",
          "documentation": "<p>The list of OAuth-related flows that can allow users to authenticate from your Amplify app.</p>"
        },
        "RedirectSignInURIs": {
          "shape": "ListOf__string",
          "locationName": "redirectSignInURIs",
          "documentation": "<p>Redirect URLs that OAuth uses when a user signs in to an Amplify app.</p>"
        },
        "RedirectSignOutURIs": {
          "shape": "ListOf__string",
          "locationName": "redirectSignOutURIs",
          "documentation": "<p>Redirect URLs that OAuth uses when a user signs out of an Amplify app.</p>"
        },
        "SocialProviderSettings": {
          "shape": "SocialProviderSettings",
          "locationName": "socialProviderSettings",
          "documentation": "<p>Describes third-party social federation configurations for allowing your users to sign in with OAuth.</p>"
        }
      },
      "documentation": "<p>The OAuth configurations for authenticating users into your Amplify app.</p>"
    },
    "UpdateBackendAuthPasswordPolicyConfig": {
      "type": "structure",
      "members": {
        "AdditionalConstraints": {
          "shape": "ListOfAdditionalConstraintsElement",
          "locationName": "additionalConstraints",
          "documentation": "<p>Describes additional constrains on the password requirements to sign in to the auth resource, configured as a part of your Amplify project.</p>"
        },
        "MinimumLength": {
          "shape": "__double",
          "locationName": "minimumLength",
          "documentation": "<p>Describes the minimum length of the password required to sign in to the auth resource, configured as a part of your Amplify project.</p>"
        }
      },
      "documentation": "<p>Describes the password policy for your Amazon Cognito user pool that's configured as a part of your Amplify project.</p>"
    },
    "UpdateBackendAuthReqObj": {
      "type": "structure",
      "members": {
        "ResourceConfig": {
          "shape": "UpdateBackendAuthResourceConfig",
          "locationName": "resourceConfig",
          "documentation": "<p>The resource configuration for this request object.</p>"
        },
        "ResourceName": {
          "shape": "__string",
          "locationName": "resourceName",
          "documentation": "<p>The name of this resource.</p>"
        }
      },
      "documentation": "<p>The request object for this operation.</p>",
      "required": [
        "ResourceName",
        "ResourceConfig"
      ]
    },
    "UpdateBackendAuthRequest": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "location": "uri",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "ResourceConfig": {
          "shape": "UpdateBackendAuthResourceConfig",
          "locationName": "resourceConfig",
          "documentation": "<p>The resource configuration for this request object.</p>"
        },
        "ResourceName": {
          "shape": "__string",
          "locationName": "resourceName",
          "documentation": "<p>The name of this resource.</p>"
        }
      },
      "documentation": "<p>The request body for UpdateBackendAuth.</p>",
      "required": [
        "AppId",
        "BackendEnvironmentName",
        "ResourceName",
        "ResourceConfig"
      ]
    },
    "UpdateBackendAuthResourceConfig": {
      "type": "structure",
      "members": {
        "AuthResources": {
          "shape": "AuthResources",
          "locationName": "authResources",
          "documentation": "<p>Defines the service name to use when configuring an authentication resource in your Amplify project.</p>"
        },
        "IdentityPoolConfigs": {
          "shape": "UpdateBackendAuthIdentityPoolConfig",
          "locationName": "identityPoolConfigs",
          "documentation": "<p>Describes the authorization configuration for the Amazon Cognito identity pool, provisioned as a part of the auth resource in your Amplify project.</p>"
        },
        "Service": {
          "shape": "Service",
          "locationName": "service",
          "documentation": "<p>Defines the service name to use when configuring an authentication resource in your Amplify project.</p>"
        },
        "UserPoolConfigs": {
          "shape": "UpdateBackendAuthUserPoolConfig",
          "locationName": "userPoolConfigs",
          "documentation": "<p>Describes the authentication configuration for the Amazon Cognito user pool, provisioned as a part of the auth resource in your Amplify project.</p>"
        }
      },
      "documentation": "<p>Defines the resource configuration when updating an authentication resource in your Amplify project.</p>",
      "required": [
        "AuthResources",
        "UserPoolConfigs",
        "Service"
      ]
    },
    "UpdateBackendAuthResponse": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "JobId": {
          "shape": "__string",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "Operation": {
          "shape": "__string",
          "locationName": "operation",
          "documentation": "<p>The name of the operation.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>The current status of the request.</p>"
        }
      }
    },
    "UpdateBackendAuthUserPoolConfig": {
      "type": "structure",
      "members": {
        "ForgotPassword": {
          "shape": "UpdateBackendAuthForgotPasswordConfig",
          "locationName": "forgotPassword",
          "documentation": "<p>Describes the forgot password policy for your Amazon Cognito user pool, configured as a part of your Amplify project.</p>"
        },
        "Mfa": {
          "shape": "UpdateBackendAuthMFAConfig",
          "locationName": "mfa",
          "documentation": "<p>Describes whether to apply multi-factor authentication (MFA) policies for your Amazon Cognito user pool that's configured as a part of your Amplify project.</p>"
        },
        "OAuth": {
          "shape": "UpdateBackendAuthOAuthConfig",
          "locationName": "oAuth",
          "documentation": "<p>Describes the OAuth policy and rules for your Amazon Cognito user pool, configured as a part of your Amplify project.</p>"
        },
        "PasswordPolicy": {
          "shape": "UpdateBackendAuthPasswordPolicyConfig",
          "locationName": "passwordPolicy",
          "documentation": "<p>Describes the password policy for your Amazon Cognito user pool, configured as a part of your Amplify project.</p>"
        }
      },
      "documentation": "<p>Describes the Amazon Cognito user pool configuration to configure the authorization resource for your Amplify project on an update.</p>"
    },
    "UpdateBackendConfigReqObj": {
      "type": "structure",
      "members": {
        "LoginAuthConfig": {
          "shape": "LoginAuthConfigReqObj",
          "locationName": "loginAuthConfig",
          "documentation": "<p>Describes the Amazon Cognito configuration for Admin UI access.</p>"
        }
      },
      "documentation": "<p>The request object for this operation.</p>"
    },
    "UpdateBackendConfigRequest": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "LoginAuthConfig": {
          "shape": "LoginAuthConfigReqObj",
          "locationName": "loginAuthConfig",
          "documentation": "<p>Describes the Amazon Cognito configuration for Admin UI access.</p>"
        }
      },
      "documentation": "<p>The request body for UpdateBackendConfig.</p>",
      "required": [
        "AppId"
      ]
    },
    "UpdateBackendConfigResponse": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendManagerAppId": {
          "shape": "__string",
          "locationName": "backendManagerAppId",
          "documentation": "<p>The app ID for the backend manager.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "LoginAuthConfig": {
          "shape": "LoginAuthConfigReqObj",
          "locationName": "loginAuthConfig",
          "documentation": "<p>Describes the Amazon Cognito configurations for the Admin UI auth resource to log in with.</p>"
        }
      }
    },
    "UpdateBackendJobRequest": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "location": "uri",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "JobId": {
          "shape": "__string",
          "location": "uri",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "Operation": {
          "shape": "__string",
          "locationName": "operation",
          "documentation": "<p>Filters the list of response objects to include only those with the specified operation name.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>Filters the list of response objects to include only those with the specified status.</p>"
        }
      },
      "documentation": "<p>The request body for GetBackendJob.</p>",
      "required": [
        "AppId",
        "BackendEnvironmentName",
        "JobId"
      ]
    },
    "UpdateBackendJobResponse": {
      "type": "structure",
      "members": {
        "AppId": {
          "shape": "__string",
          "locationName": "appId",
          "documentation": "<p>The app ID.</p>"
        },
        "BackendEnvironmentName": {
          "shape": "__string",
          "locationName": "backendEnvironmentName",
          "documentation": "<p>The name of the backend environment.</p>"
        },
        "CreateTime": {
          "shape": "__string",
          "locationName": "createTime",
          "documentation": "<p>The time when the job was created.</p>"
        },
        "Error": {
          "shape": "__string",
          "locationName": "error",
          "documentation": "<p>If the request failed, this is the returned error.</p>"
        },
        "JobId": {
          "shape": "__string",
          "locationName": "jobId",
          "documentation": "<p>The ID for the job.</p>"
        },
        "Operation": {
          "shape": "__string",
          "locationName": "operation",
          "documentation": "<p>The name of the operation.</p>"
        },
        "Status": {
          "shape": "__string",
          "locationName": "status",
          "documentation": "<p>The current status of the request.</p>"
        },
        "UpdateTime": {
          "shape": "__string",
          "locationName": "updateTime",
          "documentation": "<p>The time when the job was last updated.</p>"
        }
      }
    },
    "AdditionalConstraintsElement": {
      "type": "string",
      "enum": [
        "REQUIRE_DIGIT",
        "REQUIRE_LOWERCASE",
        "REQUIRE_SYMBOL",
        "REQUIRE_UPPERCASE"
      ]
    },
    "MfaTypesElement": {
      "type": "string",
      "enum": [
        "SMS",
        "TOTP"
      ]
    },
    "OAuthScopesElement": {
      "type": "string",
      "enum": [
        "PHONE",
        "EMAIL",
        "OPENID",
        "PROFILE",
        "AWS_COGNITO_SIGNIN_USER_ADMIN"
      ]
    },
    "RequiredSignUpAttributesElement": {
      "type": "string",
      "enum": [
        "ADDRESS",
        "BIRTHDATE",
        "EMAIL",
        "FAMILY_NAME",
        "GENDER",
        "GIVEN_NAME",
        "LOCALE",
        "MIDDLE_NAME",
        "NAME",
        "NICKNAME",
        "PHONE_NUMBER",
        "PICTURE",
        "PREFERRED_USERNAME",
        "PROFILE",
        "UPDATED_AT",
        "WEBSITE",
        "ZONE_INFO"
      ]
    },
    "__boolean": {
      "type": "boolean"
    },
    "__double": {
      "type": "double"
    },
    "__integer": {
      "type": "integer"
    },
    "__integerMin1Max25": {
      "type": "integer",
      "min": 1,
      "max": 25
    },
    "ListOfBackendAPIAuthType": {
      "type": "list",
      "member": {
        "shape": "BackendAPIAuthType"
      }
    },
    "ListOfBackendJobRespObj": {
      "type": "list",
      "member": {
        "shape": "BackendJobRespObj"
      }
    },
    "ListOfAdditionalConstraintsElement": {
      "type": "list",
      "member": {
        "shape": "AdditionalConstraintsElement"
      }
    },
    "ListOfMfaTypesElement": {
      "type": "list",
      "member": {
        "shape": "MfaTypesElement"
      }
    },
    "ListOfOAuthScopesElement": {
      "type": "list",
      "member": {
        "shape": "OAuthScopesElement"
      }
    },
    "ListOfRequiredSignUpAttributesElement": {
      "type": "list",
      "member": {
        "shape": "RequiredSignUpAttributesElement"
      }
    },
    "ListOf__string": {
      "type": "list",
      "member": {
        "shape": "__string"
      }
    },
    "__long": {
      "type": "long"
    },
    "__string": {
      "type": "string"
    },
    "__timestampIso8601": {
      "type": "timestamp",
      "timestampFormat": "iso8601"
    },
    "__timestampUnix": {
      "type": "timestamp",
      "timestampFormat": "unixTimestamp"
    }
  },
  "documentation": "<p>AWS Amplify Admin API</p>"
}
