{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/FunctionConfiguration",
  "title": "FunctionConfiguration",
  "type": "object",
  "properties": {
    "FunctionName": {
      "allOf": [
        {
          "$ref": "#/components/schemas/NamespacedFunctionName"
        },
        {
          "description": "The name of the function."
        }
      ]
    },
    "FunctionArn": {
      "allOf": [
        {
          "$ref": "#/components/schemas/NameSpacedFunctionArn"
        },
        {
          "description": "The function's Amazon Resource Name (ARN)."
        }
      ]
    },
    "Runtime": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Runtime"
        },
        {
          "description": "<p>The identifier of the function's <a href=\"https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html\">runtime</a>. Runtime is required if the deployment package is a .zip file archive.</p> <p>The following list includes deprecated runtimes. For more information, see <a href=\"https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-support-policy\">Runtime deprecation policy</a>.</p>"
        }
      ]
    },
    "Role": {
      "allOf": [
        {
          "$ref": "#/components/schemas/RoleArn"
        },
        {
          "description": "The function's execution role."
        }
      ]
    },
    "Handler": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Handler"
        },
        {
          "description": "The function that Lambda calls to begin running your function."
        }
      ]
    },
    "CodeSize": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Long"
        },
        {
          "description": "The size of the function's deployment package, in bytes."
        }
      ]
    },
    "Description": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Description"
        },
        {
          "description": "The function's description."
        }
      ]
    },
    "Timeout": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Timeout"
        },
        {
          "description": "The amount of time in seconds that Lambda allows a function to run before stopping it."
        }
      ]
    },
    "MemorySize": {
      "allOf": [
        {
          "$ref": "#/components/schemas/MemorySize"
        },
        {
          "description": "The amount of memory available to the function at runtime."
        }
      ]
    },
    "LastModified": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Timestamp"
        },
        {
          "description": "The date and time that the function was last updated, in <a href=\"https://www.w3.org/TR/NOTE-datetime\">ISO-8601 format</a> (YYYY-MM-DDThh:mm:ss.sTZD)."
        }
      ]
    },
    "CodeSha256": {
      "allOf": [
        {
          "$ref": "#/components/schemas/String"
        },
        {
          "description": "The SHA256 hash of the function's deployment package."
        }
      ]
    },
    "Version": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Version"
        },
        {
          "description": "The version of the Lambda function."
        }
      ]
    },
    "VpcConfig": {
      "allOf": [
        {
          "$ref": "#/components/schemas/VpcConfigResponse"
        },
        {
          "description": "The function's networking configuration."
        }
      ]
    },
    "DeadLetterConfig": {
      "allOf": [
        {
          "$ref": "#/components/schemas/DeadLetterConfig"
        },
        {
          "description": "The function's dead letter queue."
        }
      ]
    },
    "Environment": {
      "allOf": [
        {
          "$ref": "#/components/schemas/EnvironmentResponse"
        },
        {
          "description": "The function's <a href=\"https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html\">environment variables</a>. Omitted from CloudTrail logs."
        }
      ]
    },
    "KMSKeyArn": {
      "allOf": [
        {
          "$ref": "#/components/schemas/KMSKeyArn"
        },
        {
          "description": "The KMS key that's used to encrypt the function's <a href=\"https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption\">environment variables</a>. When <a href=\"https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html\">Lambda SnapStart</a> is activated, this key is also used to encrypt the function's snapshot. This key is returned only if you've configured a customer managed key."
        }
      ]
    },
    "TracingConfig": {
      "allOf": [
        {
          "$ref": "#/components/schemas/TracingConfigResponse"
        },
        {
          "description": "The function's X-Ray tracing configuration."
        }
      ]
    },
    "MasterArn": {
      "allOf": [
        {
          "$ref": "#/components/schemas/FunctionArn"
        },
        {
          "description": "For Lambda@Edge functions, the ARN of the main function."
        }
      ]
    },
    "RevisionId": {
      "allOf": [
        {
          "$ref": "#/components/schemas/String"
        },
        {
          "description": "The latest updated revision of the function or alias."
        }
      ]
    },
    "Layers": {
      "allOf": [
        {
          "$ref": "#/components/schemas/LayersReferenceList"
        },
        {
          "description": "The function's <a href=\"https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html\">layers</a>."
        }
      ]
    },
    "State": {
      "allOf": [
        {
          "$ref": "#/components/schemas/State"
        },
        {
          "description": "The current state of the function. When the state is <code>Inactive</code>, you can reactivate the function by invoking it."
        }
      ]
    },
    "StateReason": {
      "allOf": [
        {
          "$ref": "#/components/schemas/StateReason"
        },
        {
          "description": "The reason for the function's current state."
        }
      ]
    },
    "StateReasonCode": {
      "allOf": [
        {
          "$ref": "#/components/schemas/StateReasonCode"
        },
        {
          "description": "The reason code for the function's current state. When the code is <code>Creating</code>, you can't invoke or modify the function."
        }
      ]
    },
    "LastUpdateStatus": {
      "allOf": [
        {
          "$ref": "#/components/schemas/LastUpdateStatus"
        },
        {
          "description": "The status of the last update that was performed on the function. This is first set to <code>Successful</code> after function creation completes."
        }
      ]
    },
    "LastUpdateStatusReason": {
      "allOf": [
        {
          "$ref": "#/components/schemas/LastUpdateStatusReason"
        },
        {
          "description": "The reason for the last update that was performed on the function."
        }
      ]
    },
    "LastUpdateStatusReasonCode": {
      "allOf": [
        {
          "$ref": "#/components/schemas/LastUpdateStatusReasonCode"
        },
        {
          "description": "The reason code for the last update that was performed on the function."
        }
      ]
    },
    "FileSystemConfigs": {
      "allOf": [
        {
          "$ref": "#/components/schemas/FileSystemConfigList"
        },
        {
          "description": "Connection settings for an <a href=\"https://docs.aws.amazon.com/lambda/latest/dg/configuration-filesystem.html\">Amazon EFS file system</a>."
        }
      ]
    },
    "PackageType": {
      "allOf": [
        {
          "$ref": "#/components/schemas/PackageType"
        },
        {
          "description": "The type of deployment package. Set to <code>Image</code> for container image and set <code>Zip</code> for .zip file archive."
        }
      ]
    },
    "ImageConfigResponse": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ImageConfigResponse"
        },
        {
          "description": "The function's image configuration values."
        }
      ]
    },
    "SigningProfileVersionArn": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Arn"
        },
        {
          "description": "The ARN of the signing profile version."
        }
      ]
    },
    "SigningJobArn": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Arn"
        },
        {
          "description": "The ARN of the signing job."
        }
      ]
    },
    "Architectures": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ArchitecturesList"
        },
        {
          "description": "The instruction set architecture that the function supports. Architecture is a string array with one of the valid values. The default architecture value is <code>x86_64</code>."
        }
      ]
    },
    "EphemeralStorage": {
      "allOf": [
        {
          "$ref": "#/components/schemas/EphemeralStorage"
        },
        {
          "description": "The size of the function's <code>/tmp</code> directory in MB. The default value is 512, but it can be any whole number between 512 and 10,240 MB."
        }
      ]
    },
    "SnapStart": {
      "allOf": [
        {
          "$ref": "#/components/schemas/SnapStartResponse"
        },
        {
          "description": "Set <code>ApplyOn</code> to <code>PublishedVersions</code> to create a snapshot of the initialized execution environment when you publish a function version. For more information, see <a href=\"https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html\">Improving startup performance with Lambda SnapStart</a>."
        }
      ]
    },
    "RuntimeVersionConfig": {
      "allOf": [
        {
          "$ref": "#/components/schemas/RuntimeVersionConfig"
        },
        {
          "description": "The ARN of the runtime and any errors that occured."
        }
      ]
    }
  },
  "description": "Details about a function's configuration."
}