{
  "description": "Alias is the Schema for the Aliases API",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": "string"
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "properties": {
        "description": {
          "description": "A description of the alias.",
          "type": "string"
        },
        "functionEventInvokeConfig": {
          "description": "Configures options for asynchronous invocation on an alias.\n\n- DestinationConfig\nA destination for events after they have been sent to a function for processing.\n\nTypes of Destinations:\nFunction - The Amazon Resource Name (ARN) of a Lambda function.\nQueue - The ARN of a standard SQS queue.\nTopic - The ARN of a standard SNS topic.\nEvent Bus - The ARN of an Amazon EventBridge event bus.\n\n- MaximumEventAgeInSeconds\nThe maximum age of a request that Lambda sends to a function for processing.\n\n- MaximumRetryAttempts\nThe maximum number of times to retry when the function returns an error.",
          "properties": {
            "destinationConfig": {
              "description": "A configuration object that specifies the destination of an event after Lambda\nprocesses it. For more information, see Adding a destination (https://docs.aws.amazon.com/lambda/latest/dg/invocation-async-retain-records.html#invocation-async-destinations).",
              "properties": {
                "onFailure": {
                  "description": "A destination for events that failed processing. For more information, see\nAdding a destination (https://docs.aws.amazon.com/lambda/latest/dg/invocation-async-retain-records.html#invocation-async-destinations).",
                  "properties": {
                    "destination": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "onSuccess": {
                  "description": "A destination for events that were processed successfully.\n\nTo retain records of successful asynchronous invocations (https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations),\nyou can configure an Amazon SNS topic, Amazon SQS queue, Lambda function,\nor Amazon EventBridge event bus as the destination.\n\nOnSuccess is not supported in CreateEventSourceMapping or UpdateEventSourceMapping\nrequests.",
                  "properties": {
                    "destination": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "functionName": {
              "type": "string"
            },
            "maximumEventAgeInSeconds": {
              "format": "int64",
              "type": "integer"
            },
            "maximumRetryAttempts": {
              "format": "int64",
              "type": "integer"
            },
            "qualifier": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "functionName": {
          "description": "The name or ARN of the Lambda function.\n\nName formats\n\n  - Function name - MyFunction.\n\n  - Function ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction.\n\n  - Partial ARN - 123456789012:function:MyFunction.\n\nThe length constraint applies only to the full ARN. If you specify only the\nfunction name, it is limited to 64 characters in length.\n\nRegex Pattern: `^(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?$`",
          "type": "string"
        },
        "functionRef": {
          "description": "AWSResourceReferenceWrapper provides a wrapper around *AWSResourceReference\ntype to provide more user friendly syntax for references using 'from' field\nEx:\nAPIIDRef:\n\n\tfrom:\n\t  name: my-api",
          "properties": {
            "from": {
              "description": "AWSResourceReference provides all the values necessary to reference another\nk8s resource for finding the identifier(Id/ARN/Name)",
              "properties": {
                "name": {
                  "type": "string"
                },
                "namespace": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "functionVersion": {
          "description": "The function version that the alias invokes.\n\nRegex Pattern: `^(\\$LATEST|[0-9]+)$`",
          "type": "string"
        },
        "name": {
          "description": "The name of the alias.\n\nRegex Pattern: `^(?!^[0-9]+$)([a-zA-Z0-9-_]+)$`",
          "type": "string"
        },
        "permissions": {
          "description": "Permissions configures a set of Lambda permissions to grant to an alias.",
          "items": {
            "properties": {
              "action": {
                "type": "string"
              },
              "eventSourceToken": {
                "type": "string"
              },
              "functionURLAuthType": {
                "type": "string"
              },
              "principal": {
                "type": "string"
              },
              "principalOrgID": {
                "type": "string"
              },
              "revisionID": {
                "type": "string"
              },
              "sourceARN": {
                "type": "string"
              },
              "sourceAccount": {
                "type": "string"
              },
              "statementID": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "provisionedConcurrencyConfig": {
          "description": "Configures provisioned concurrency to a function's alias\n\n- ProvisionedConcurrentExecutions\nThe amount of provisioned concurrency to allocate for the version or alias.\nMinimum value of 1 is required",
          "properties": {
            "functionName": {
              "type": "string"
            },
            "provisionedConcurrentExecutions": {
              "format": "int64",
              "type": "integer"
            },
            "qualifier": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "routingConfig": {
          "description": "The routing configuration (https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html#configuring-alias-routing)\nof the alias.",
          "properties": {
            "additionalVersionWeights": {
              "additionalProperties": {
                "type": "number"
              },
              "type": "object"
            }
          },
          "type": "object",
          "additionalProperties": false
        }
      },
      "required": [
        "functionVersion",
        "name"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "AliasStatus defines the observed state of Alias",
      "properties": {
        "ackResourceMetadata": {
          "description": "All CRs managed by ACK have a common `Status.ACKResourceMetadata` member\nthat is used to contain resource sync state, account ownership,\nconstructed ARN for the resource",
          "properties": {
            "arn": {
              "description": "ARN is the Amazon Resource Name for the resource. This is a\nglobally-unique identifier and is set only by the ACK service controller\nonce the controller has orchestrated the creation of the resource OR\nwhen it has verified that an \"adopted\" resource (a resource where the\nARN annotation was set by the Kubernetes user on the CR) exists and\nmatches the supplied CR's Spec field values.\nhttps://github.com/aws/aws-controllers-k8s/issues/270",
              "type": "string"
            },
            "ownerAccountID": {
              "description": "OwnerAccountID is the AWS Account ID of the account that owns the\nbackend AWS service API resource.",
              "type": "string"
            },
            "region": {
              "description": "Region is the AWS region in which the resource exists or will exist.",
              "type": "string"
            }
          },
          "required": [
            "ownerAccountID",
            "region"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "conditions": {
          "description": "All CRs managed by ACK have a common `Status.Conditions` member that\ncontains a collection of `ackv1alpha1.Condition` objects that describe\nthe various terminal states of the CR and its backend AWS service API\nresource",
          "items": {
            "description": "Condition is the common struct used by all CRDs managed by ACK service\ncontrollers to indicate terminal states  of the CR and its backend AWS\nservice API resource",
            "properties": {
              "lastTransitionTime": {
                "description": "Last time the condition transitioned from one status to another.",
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "description": "A human readable message indicating details about the transition.",
                "type": "string"
              },
              "reason": {
                "description": "The reason for the condition's last transition.",
                "type": "string"
              },
              "status": {
                "description": "Status of the condition, one of True, False, Unknown.",
                "type": "string"
              },
              "type": {
                "description": "Type is the type of the Condition",
                "type": "string"
              }
            },
            "required": [
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "revisionID": {
          "description": "A unique identifier that changes when you update the alias.",
          "type": "string"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
