Reference for configuration¶
This is the documentation for the pydantic models which are use for config validation.
- pydantic model awspub.configmodels.ConfigModel¶
The base model for the whole configuration
Show JSON schema
{ "title": "ConfigModel", "description": "The base model for the whole configuration", "type": "object", "properties": { "s3": { "$ref": "#/$defs/ConfigS3Model" }, "source": { "$ref": "#/$defs/ConfigSourceModel" }, "images": { "additionalProperties": { "$ref": "#/$defs/ConfigImageModel" }, "title": "Images", "type": "object" }, "tags": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "default": {}, "description": "Optional Tags to apply to all resources", "title": "Tags" } }, "$defs": { "ConfigImageMarketplaceModel": { "additionalProperties": false, "description": "Image/AMI Marketplace specific configuration to request new Marketplace versions\nSee https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/ami-products.html\nfor further information", "properties": { "entity_id": { "description": "The entity ID (product ID)", "title": "Entity Id", "type": "string" }, "access_role_arn": { "description": "IAM role Amazon Resource Name (ARN) used by AWS Marketplace to access the provided AMI", "title": "Access Role Arn", "type": "string" }, "version_title": { "description": "The version title. Must be unique across the product", "title": "Version Title", "type": "string" }, "release_notes": { "description": "The release notes", "title": "Release Notes", "type": "string" }, "user_name": { "description": "The login username to access the operating system", "title": "User Name", "type": "string" }, "scanning_port": { "default": 22, "description": "Port to access the operating system (default: 22)", "title": "Scanning Port", "type": "integer" }, "os_name": { "description": "Operating system name displayed to Marketplace buyers", "title": "Os Name", "type": "string" }, "os_version": { "description": "Operating system version displayed to Marketplace buyers", "title": "Os Version", "type": "string" }, "usage_instructions": { "description": " Instructions for using the AMI, or a link to more information about the AMI", "title": "Usage Instructions", "type": "string" }, "recommended_instance_type": { "description": "The instance type that is recommended to run the service with the AMI and is the default for 1-click installs of your service", "title": "Recommended Instance Type", "type": "string" }, "security_groups": { "anyOf": [ { "items": { "$ref": "#/$defs/ConfigImageMarketplaceSecurityGroupModel" }, "type": "array" }, { "type": "null" } ], "title": "Security Groups" } }, "required": [ "entity_id", "access_role_arn", "version_title", "release_notes", "user_name", "os_name", "os_version", "usage_instructions", "recommended_instance_type", "security_groups" ], "title": "ConfigImageMarketplaceModel", "type": "object" }, "ConfigImageMarketplaceSecurityGroupModel": { "additionalProperties": false, "description": "Image/AMI Marketplace specific configuration for a security group", "properties": { "from_port": { "description": "The source port", "title": "From Port", "type": "integer" }, "ip_protocol": { "description": "The IP protocol (either 'tcp' or 'udp')", "enum": [ "tcp", "udp" ], "title": "Ip Protocol", "type": "string" }, "ip_ranges": { "description": "IP ranges to allow, in CIDR format (eg. '192.0.2.0/24')", "items": { "type": "string" }, "title": "Ip Ranges", "type": "array" }, "to_port": { "description": "The destination port", "title": "To Port", "type": "integer" } }, "required": [ "from_port", "ip_protocol", "ip_ranges", "to_port" ], "title": "ConfigImageMarketplaceSecurityGroupModel", "type": "object" }, "ConfigImageModel": { "additionalProperties": false, "description": "Image/AMI configuration.", "properties": { "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional image description", "title": "Description" }, "regions": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Optional list of regions for this image. If not given, all available regions willbe used from the currently used partition. If a region doesn't exist in the currently used partition, it will be ignored.", "title": "Regions" }, "separate_snapshot": { "default": false, "description": "Use a separate snapshot for this image?", "title": "Separate Snapshot", "type": "boolean" }, "billing_products": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Optional list of billing codes", "title": "Billing Products" }, "boot_mode": { "description": "The boot mode. For arm64, this needs to be 'uefi'", "enum": [ "legacy-bios", "uefi", "uefi-preferred" ], "title": "Boot Mode", "type": "string" }, "root_device_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "/dev/sda1", "description": "The root device name", "title": "Root Device Name" }, "root_device_volume_type": { "anyOf": [ { "enum": [ "gp2", "gp3" ], "type": "string" }, { "type": "null" } ], "default": "gp3", "description": "The root device volume type", "title": "Root Device Volume Type" }, "root_device_volume_size": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": 8, "description": "The root device volume size (in GB)", "title": "Root Device Volume Size" }, "uefi_data": { "anyOf": [ { "format": "path", "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional path to a non-volatile UEFI variable store (must be already base64 encoded)", "title": "Uefi Data" }, "tpm_support": { "anyOf": [ { "const": "v2.0", "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional TPM support. If this is set, 'boot_mode' must be 'uefi'", "title": "Tpm Support" }, "imds_support": { "anyOf": [ { "const": "v2.0", "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional IMDS support", "title": "Imds Support" }, "share": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Optional list of account IDs the image and snapshot will be shared with. The accountID can be prefixed with the partition and separated by ':'. Eg 'aws-cn:123456789123'", "title": "Share" }, "temporary": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "description": "Optional boolean field indicates that a image is only temporary", "title": "Temporary" }, "public": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "description": "Optional boolean field indicates if the image should be public", "title": "Public" }, "marketplace": { "anyOf": [ { "$ref": "#/$defs/ConfigImageMarketplaceModel" }, { "type": "null" } ], "default": null, "description": "Optional structure containing Marketplace related configuration for the commercial 'aws' partition" }, "ssm_parameter": { "anyOf": [ { "items": { "$ref": "#/$defs/ConfigImageSSMParameterModel" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Optional list of SSM parameter paths of type `aws:ec2:image` which will be pushed to the parameter store", "title": "Ssm Parameter" }, "groups": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": [], "description": "Optional list of groups this image is part of", "title": "Groups" }, "tags": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "default": {}, "description": "Optional Tags to apply to this image only", "title": "Tags" }, "sns": { "anyOf": [ { "items": { "additionalProperties": { "$ref": "#/$defs/ConfigImageSNSNotificationModel" }, "type": "object" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Optional list of SNS Notification related configuration", "title": "Sns" } }, "required": [ "boot_mode" ], "title": "ConfigImageModel", "type": "object" }, "ConfigImageSNSNotificationModel": { "additionalProperties": false, "description": "Image/AMI SNS Notification specific configuration to notify subscribers about new images availability", "properties": { "subject": { "description": "The subject of SNS Notification", "maxLength": 99, "minLength": 1, "title": "Subject", "type": "string" }, "message": { "additionalProperties": { "type": "string" }, "default": { "default": "" }, "description": "The body of the message to be sent to subscribers.", "propertyNames": { "$ref": "#/$defs/SNSNotificationProtocol" }, "title": "Message", "type": "object" } }, "required": [ "subject" ], "title": "ConfigImageSNSNotificationModel", "type": "object" }, "ConfigImageSSMParameterModel": { "additionalProperties": false, "description": "Image/AMI SSM specific configuration to push parameters of type `aws:ec2:image` to the parameter store", "properties": { "name": { "description": "The fully qualified name of the parameter that you want to add to the system. A parameter name must be unique within an Amazon Web Services Region", "title": "Name", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Information about the parameter that you want to add to the system", "title": "Description" }, "allow_overwrite": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "description": "allow to overwrite an existing parameter. Useful for keep a 'latest' parameter (default: false)", "title": "Allow Overwrite" } }, "required": [ "name" ], "title": "ConfigImageSSMParameterModel", "type": "object" }, "ConfigS3Model": { "additionalProperties": false, "description": "S3 configuration.\nThis is required for uploading source files (usually .vmdk) to a bucket so\nsnapshots can be created out of the s3 file", "properties": { "bucket_name": { "description": "The S3 bucket name", "title": "Bucket Name", "type": "string" } }, "required": [ "bucket_name" ], "title": "ConfigS3Model", "type": "object" }, "ConfigSourceModel": { "additionalProperties": false, "description": "Source configuration.\nThis defines the source (usually .vmdk) that is uploaded\nto S3 and then used to create EC2 snapshots in different regions.", "properties": { "path": { "description": "Path to a local .vmdk image", "format": "path", "title": "Path", "type": "string" }, "architecture": { "description": "The architecture of the given .vmdk image", "enum": [ "x86_64", "arm64" ], "title": "Architecture", "type": "string" } }, "required": [ "path", "architecture" ], "title": "ConfigSourceModel", "type": "object" }, "SNSNotificationProtocol": { "enum": [ "default", "email" ], "title": "SNSNotificationProtocol", "type": "string" } }, "additionalProperties": false, "required": [ "s3", "source", "images" ] }
- Config:
extra: str = forbid
- Fields:
- field images: Dict[str, ConfigImageModel] [Required]¶
- field s3: ConfigS3Model [Required]¶
- field source: ConfigSourceModel [Required]¶
- field tags: Dict[str, str] | None = {}¶
Optional Tags to apply to all resources
- pydantic model awspub.configmodels.ConfigS3Model¶
S3 configuration. This is required for uploading source files (usually .vmdk) to a bucket so snapshots can be created out of the s3 file
Show JSON schema
{ "title": "ConfigS3Model", "description": "S3 configuration.\nThis is required for uploading source files (usually .vmdk) to a bucket so\nsnapshots can be created out of the s3 file", "type": "object", "properties": { "bucket_name": { "description": "The S3 bucket name", "title": "Bucket Name", "type": "string" } }, "additionalProperties": false, "required": [ "bucket_name" ] }
- Config:
extra: str = forbid
- Fields:
- field bucket_name: str [Required]¶
The S3 bucket name
- pydantic model awspub.configmodels.ConfigSourceModel¶
Source configuration. This defines the source (usually .vmdk) that is uploaded to S3 and then used to create EC2 snapshots in different regions.
Show JSON schema
{ "title": "ConfigSourceModel", "description": "Source configuration.\nThis defines the source (usually .vmdk) that is uploaded\nto S3 and then used to create EC2 snapshots in different regions.", "type": "object", "properties": { "path": { "description": "Path to a local .vmdk image", "format": "path", "title": "Path", "type": "string" }, "architecture": { "description": "The architecture of the given .vmdk image", "enum": [ "x86_64", "arm64" ], "title": "Architecture", "type": "string" } }, "additionalProperties": false, "required": [ "path", "architecture" ] }
- Config:
extra: str = forbid
- Fields:
- field architecture: Literal['x86_64', 'arm64'] [Required]¶
The architecture of the given .vmdk image
- field path: Path [Required]¶
Path to a local .vmdk image
- pydantic model awspub.configmodels.ConfigImageModel¶
Image/AMI configuration.
Show JSON schema
{ "title": "ConfigImageModel", "description": "Image/AMI configuration.", "type": "object", "properties": { "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional image description", "title": "Description" }, "regions": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Optional list of regions for this image. If not given, all available regions willbe used from the currently used partition. If a region doesn't exist in the currently used partition, it will be ignored.", "title": "Regions" }, "separate_snapshot": { "default": false, "description": "Use a separate snapshot for this image?", "title": "Separate Snapshot", "type": "boolean" }, "billing_products": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Optional list of billing codes", "title": "Billing Products" }, "boot_mode": { "description": "The boot mode. For arm64, this needs to be 'uefi'", "enum": [ "legacy-bios", "uefi", "uefi-preferred" ], "title": "Boot Mode", "type": "string" }, "root_device_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "/dev/sda1", "description": "The root device name", "title": "Root Device Name" }, "root_device_volume_type": { "anyOf": [ { "enum": [ "gp2", "gp3" ], "type": "string" }, { "type": "null" } ], "default": "gp3", "description": "The root device volume type", "title": "Root Device Volume Type" }, "root_device_volume_size": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": 8, "description": "The root device volume size (in GB)", "title": "Root Device Volume Size" }, "uefi_data": { "anyOf": [ { "format": "path", "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional path to a non-volatile UEFI variable store (must be already base64 encoded)", "title": "Uefi Data" }, "tpm_support": { "anyOf": [ { "const": "v2.0", "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional TPM support. If this is set, 'boot_mode' must be 'uefi'", "title": "Tpm Support" }, "imds_support": { "anyOf": [ { "const": "v2.0", "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional IMDS support", "title": "Imds Support" }, "share": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Optional list of account IDs the image and snapshot will be shared with. The accountID can be prefixed with the partition and separated by ':'. Eg 'aws-cn:123456789123'", "title": "Share" }, "temporary": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "description": "Optional boolean field indicates that a image is only temporary", "title": "Temporary" }, "public": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "description": "Optional boolean field indicates if the image should be public", "title": "Public" }, "marketplace": { "anyOf": [ { "$ref": "#/$defs/ConfigImageMarketplaceModel" }, { "type": "null" } ], "default": null, "description": "Optional structure containing Marketplace related configuration for the commercial 'aws' partition" }, "ssm_parameter": { "anyOf": [ { "items": { "$ref": "#/$defs/ConfigImageSSMParameterModel" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Optional list of SSM parameter paths of type `aws:ec2:image` which will be pushed to the parameter store", "title": "Ssm Parameter" }, "groups": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": [], "description": "Optional list of groups this image is part of", "title": "Groups" }, "tags": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "default": {}, "description": "Optional Tags to apply to this image only", "title": "Tags" }, "sns": { "anyOf": [ { "items": { "additionalProperties": { "$ref": "#/$defs/ConfigImageSNSNotificationModel" }, "type": "object" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Optional list of SNS Notification related configuration", "title": "Sns" } }, "$defs": { "ConfigImageMarketplaceModel": { "additionalProperties": false, "description": "Image/AMI Marketplace specific configuration to request new Marketplace versions\nSee https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/ami-products.html\nfor further information", "properties": { "entity_id": { "description": "The entity ID (product ID)", "title": "Entity Id", "type": "string" }, "access_role_arn": { "description": "IAM role Amazon Resource Name (ARN) used by AWS Marketplace to access the provided AMI", "title": "Access Role Arn", "type": "string" }, "version_title": { "description": "The version title. Must be unique across the product", "title": "Version Title", "type": "string" }, "release_notes": { "description": "The release notes", "title": "Release Notes", "type": "string" }, "user_name": { "description": "The login username to access the operating system", "title": "User Name", "type": "string" }, "scanning_port": { "default": 22, "description": "Port to access the operating system (default: 22)", "title": "Scanning Port", "type": "integer" }, "os_name": { "description": "Operating system name displayed to Marketplace buyers", "title": "Os Name", "type": "string" }, "os_version": { "description": "Operating system version displayed to Marketplace buyers", "title": "Os Version", "type": "string" }, "usage_instructions": { "description": " Instructions for using the AMI, or a link to more information about the AMI", "title": "Usage Instructions", "type": "string" }, "recommended_instance_type": { "description": "The instance type that is recommended to run the service with the AMI and is the default for 1-click installs of your service", "title": "Recommended Instance Type", "type": "string" }, "security_groups": { "anyOf": [ { "items": { "$ref": "#/$defs/ConfigImageMarketplaceSecurityGroupModel" }, "type": "array" }, { "type": "null" } ], "title": "Security Groups" } }, "required": [ "entity_id", "access_role_arn", "version_title", "release_notes", "user_name", "os_name", "os_version", "usage_instructions", "recommended_instance_type", "security_groups" ], "title": "ConfigImageMarketplaceModel", "type": "object" }, "ConfigImageMarketplaceSecurityGroupModel": { "additionalProperties": false, "description": "Image/AMI Marketplace specific configuration for a security group", "properties": { "from_port": { "description": "The source port", "title": "From Port", "type": "integer" }, "ip_protocol": { "description": "The IP protocol (either 'tcp' or 'udp')", "enum": [ "tcp", "udp" ], "title": "Ip Protocol", "type": "string" }, "ip_ranges": { "description": "IP ranges to allow, in CIDR format (eg. '192.0.2.0/24')", "items": { "type": "string" }, "title": "Ip Ranges", "type": "array" }, "to_port": { "description": "The destination port", "title": "To Port", "type": "integer" } }, "required": [ "from_port", "ip_protocol", "ip_ranges", "to_port" ], "title": "ConfigImageMarketplaceSecurityGroupModel", "type": "object" }, "ConfigImageSNSNotificationModel": { "additionalProperties": false, "description": "Image/AMI SNS Notification specific configuration to notify subscribers about new images availability", "properties": { "subject": { "description": "The subject of SNS Notification", "maxLength": 99, "minLength": 1, "title": "Subject", "type": "string" }, "message": { "additionalProperties": { "type": "string" }, "default": { "default": "" }, "description": "The body of the message to be sent to subscribers.", "propertyNames": { "$ref": "#/$defs/SNSNotificationProtocol" }, "title": "Message", "type": "object" } }, "required": [ "subject" ], "title": "ConfigImageSNSNotificationModel", "type": "object" }, "ConfigImageSSMParameterModel": { "additionalProperties": false, "description": "Image/AMI SSM specific configuration to push parameters of type `aws:ec2:image` to the parameter store", "properties": { "name": { "description": "The fully qualified name of the parameter that you want to add to the system. A parameter name must be unique within an Amazon Web Services Region", "title": "Name", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Information about the parameter that you want to add to the system", "title": "Description" }, "allow_overwrite": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "description": "allow to overwrite an existing parameter. Useful for keep a 'latest' parameter (default: false)", "title": "Allow Overwrite" } }, "required": [ "name" ], "title": "ConfigImageSSMParameterModel", "type": "object" }, "SNSNotificationProtocol": { "enum": [ "default", "email" ], "title": "SNSNotificationProtocol", "type": "string" } }, "additionalProperties": false, "required": [ "boot_mode" ] }
- Config:
extra: str = forbid
- Fields:
- Validators:
- field billing_products: List[str] | None = None¶
Optional list of billing codes
- field boot_mode: Literal['legacy-bios', 'uefi', 'uefi-preferred'] [Required]¶
The boot mode. For arm64, this needs to be ‘uefi’
- field description: str | None = None¶
Optional image description
- field groups: List[str] | None = []¶
Optional list of groups this image is part of
- field imds_support: Literal['v2.0'] | None = None¶
Optional IMDS support
- field marketplace: ConfigImageMarketplaceModel | None = None¶
Optional structure containing Marketplace related configuration for the commercial ‘aws’ partition
- field public: bool | None = False¶
Optional boolean field indicates if the image should be public
- field regions: List[str] | None = None¶
Optional list of regions for this image. If not given, all available regions willbe used from the currently used partition. If a region doesn’t exist in the currently used partition, it will be ignored.
- field root_device_name: str | None = '/dev/sda1'¶
The root device name
- field root_device_volume_size: int | None = 8¶
The root device volume size (in GB)
- field root_device_volume_type: Literal['gp2', 'gp3'] | None = 'gp3'¶
The root device volume type
- field separate_snapshot: bool = False¶
Use a separate snapshot for this image?
Optional list of account IDs the image and snapshot will be shared with. The accountID can be prefixed with the partition and separated by ‘:’. Eg ‘aws-cn:123456789123’
- Validated by:
- field sns: List[Dict[str, ConfigImageSNSNotificationModel]] | None = None¶
Optional list of SNS Notification related configuration
- field ssm_parameter: List[ConfigImageSSMParameterModel] | None = None¶
Optional list of SSM parameter paths of type aws:ec2:image which will be pushed to the parameter store
- field tags: Dict[str, str] | None = {}¶
Optional Tags to apply to this image only
- field temporary: bool | None = False¶
Optional boolean field indicates that a image is only temporary
- field tpm_support: Literal['v2.0'] | None = None¶
Optional TPM support. If this is set, ‘boot_mode’ must be ‘uefi’
- field uefi_data: Path | None = None¶
Optional path to a non-volatile UEFI variable store (must be already base64 encoded)
Make sure the account IDs are valid and if given the partition is correct
- pydantic model awspub.configmodels.ConfigImageMarketplaceModel¶
Image/AMI Marketplace specific configuration to request new Marketplace versions See https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/ami-products.html for further information
Show JSON schema
{ "title": "ConfigImageMarketplaceModel", "description": "Image/AMI Marketplace specific configuration to request new Marketplace versions\nSee https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/ami-products.html\nfor further information", "type": "object", "properties": { "entity_id": { "description": "The entity ID (product ID)", "title": "Entity Id", "type": "string" }, "access_role_arn": { "description": "IAM role Amazon Resource Name (ARN) used by AWS Marketplace to access the provided AMI", "title": "Access Role Arn", "type": "string" }, "version_title": { "description": "The version title. Must be unique across the product", "title": "Version Title", "type": "string" }, "release_notes": { "description": "The release notes", "title": "Release Notes", "type": "string" }, "user_name": { "description": "The login username to access the operating system", "title": "User Name", "type": "string" }, "scanning_port": { "default": 22, "description": "Port to access the operating system (default: 22)", "title": "Scanning Port", "type": "integer" }, "os_name": { "description": "Operating system name displayed to Marketplace buyers", "title": "Os Name", "type": "string" }, "os_version": { "description": "Operating system version displayed to Marketplace buyers", "title": "Os Version", "type": "string" }, "usage_instructions": { "description": " Instructions for using the AMI, or a link to more information about the AMI", "title": "Usage Instructions", "type": "string" }, "recommended_instance_type": { "description": "The instance type that is recommended to run the service with the AMI and is the default for 1-click installs of your service", "title": "Recommended Instance Type", "type": "string" }, "security_groups": { "anyOf": [ { "items": { "$ref": "#/$defs/ConfigImageMarketplaceSecurityGroupModel" }, "type": "array" }, { "type": "null" } ], "title": "Security Groups" } }, "$defs": { "ConfigImageMarketplaceSecurityGroupModel": { "additionalProperties": false, "description": "Image/AMI Marketplace specific configuration for a security group", "properties": { "from_port": { "description": "The source port", "title": "From Port", "type": "integer" }, "ip_protocol": { "description": "The IP protocol (either 'tcp' or 'udp')", "enum": [ "tcp", "udp" ], "title": "Ip Protocol", "type": "string" }, "ip_ranges": { "description": "IP ranges to allow, in CIDR format (eg. '192.0.2.0/24')", "items": { "type": "string" }, "title": "Ip Ranges", "type": "array" }, "to_port": { "description": "The destination port", "title": "To Port", "type": "integer" } }, "required": [ "from_port", "ip_protocol", "ip_ranges", "to_port" ], "title": "ConfigImageMarketplaceSecurityGroupModel", "type": "object" } }, "additionalProperties": false, "required": [ "entity_id", "access_role_arn", "version_title", "release_notes", "user_name", "os_name", "os_version", "usage_instructions", "recommended_instance_type", "security_groups" ] }
- Config:
extra: str = forbid
- Fields:
- field access_role_arn: str [Required]¶
IAM role Amazon Resource Name (ARN) used by AWS Marketplace to access the provided AMI
- field entity_id: str [Required]¶
The entity ID (product ID)
- field os_name: str [Required]¶
Operating system name displayed to Marketplace buyers
- field os_version: str [Required]¶
Operating system version displayed to Marketplace buyers
- field recommended_instance_type: str [Required]¶
The instance type that is recommended to run the service with the AMI and is the default for 1-click installs of your service
- field release_notes: str [Required]¶
The release notes
- field scanning_port: int = 22¶
Port to access the operating system (default: 22)
- field security_groups: List[ConfigImageMarketplaceSecurityGroupModel] | None [Required]¶
- field usage_instructions: str [Required]¶
Instructions for using the AMI, or a link to more information about the AMI
- field user_name: str [Required]¶
The login username to access the operating system
- field version_title: str [Required]¶
The version title. Must be unique across the product
- pydantic model awspub.configmodels.ConfigImageMarketplaceSecurityGroupModel¶
Image/AMI Marketplace specific configuration for a security group
Show JSON schema
{ "title": "ConfigImageMarketplaceSecurityGroupModel", "description": "Image/AMI Marketplace specific configuration for a security group", "type": "object", "properties": { "from_port": { "description": "The source port", "title": "From Port", "type": "integer" }, "ip_protocol": { "description": "The IP protocol (either 'tcp' or 'udp')", "enum": [ "tcp", "udp" ], "title": "Ip Protocol", "type": "string" }, "ip_ranges": { "description": "IP ranges to allow, in CIDR format (eg. '192.0.2.0/24')", "items": { "type": "string" }, "title": "Ip Ranges", "type": "array" }, "to_port": { "description": "The destination port", "title": "To Port", "type": "integer" } }, "additionalProperties": false, "required": [ "from_port", "ip_protocol", "ip_ranges", "to_port" ] }
- Config:
extra: str = forbid
- Fields:
- field from_port: int [Required]¶
The source port
- field ip_protocol: Literal['tcp', 'udp'] [Required]¶
The IP protocol (either ‘tcp’ or ‘udp’)
- field ip_ranges: List[str] [Required]¶
IP ranges to allow, in CIDR format (eg. ‘192.0.2.0/24’)
- field to_port: int [Required]¶
The destination port
- pydantic model awspub.configmodels.ConfigImageSNSNotificationModel¶
Image/AMI SNS Notification specific configuration to notify subscribers about new images availability
Show JSON schema
{ "title": "ConfigImageSNSNotificationModel", "description": "Image/AMI SNS Notification specific configuration to notify subscribers about new images availability", "type": "object", "properties": { "subject": { "description": "The subject of SNS Notification", "maxLength": 99, "minLength": 1, "title": "Subject", "type": "string" }, "message": { "additionalProperties": { "type": "string" }, "default": { "default": "" }, "description": "The body of the message to be sent to subscribers.", "propertyNames": { "$ref": "#/$defs/SNSNotificationProtocol" }, "title": "Message", "type": "object" } }, "$defs": { "SNSNotificationProtocol": { "enum": [ "default", "email" ], "title": "SNSNotificationProtocol", "type": "string" } }, "additionalProperties": false, "required": [ "subject" ] }
- Config:
extra: str = forbid
- Fields:
- Validators:
- field message: Dict[SNSNotificationProtocol, str] = {SNSNotificationProtocol.DEFAULT: ''}¶
The body of the message to be sent to subscribers.
- Validated by:
- field subject: str [Required]¶
The subject of SNS Notification
- Constraints:
min_length = 1
max_length = 99