Skip to content

create_cluster

create_cluster(
    job_type: JobType,
    address_id: AddressId,
    snowball_type: SnowballType,
    shipping_option: ShippingOption,
    *,
    config_overrides: Optional[SnowballClientConfig] = None,
    resources: Optional[JobResource] = None,
    on_device_service_configuration: Optional[OnDeviceServiceConfiguration] = None,
    description: Optional[String] = None,
    kms_key_arn: Optional[KmsKeyARN] = None,
    role_arn: Optional[RoleARN] = None,
    notification: Optional[Notification] = None,
    forwarding_address_id: Optional[AddressId] = None,
    tax_documents: Optional[TaxDocuments] = None,
    remote_management: Optional[RemoteManagement] = None,
    initial_cluster_size: Optional[InitialClusterSize] = None,
    force_create_jobs: Optional[Boolean] = None,
    long_term_pricing_ids: Optional[LongTermPricingIdList] = None,
    snowball_capacity_preference: Optional[SnowballCapacity] = None,
) -> CreateClusterResult

Creates an empty cluster. Each cluster supports five nodes. You use the CreateJob action separately to create the jobs for each of these nodes. The cluster does not ship until these five node jobs have been created.

Parameters:

  • job_type (JobType) –

    The type of job for this cluster. Currently, the only job type supported for clusters is LOCAL_USE.

    For more information, see "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the Snowcone User Guide or "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the Snowcone User Guide.

  • resources (Optional[JobResource], default: None ) –

    The resources associated with the cluster job. These resources include Amazon S3 buckets and optional Lambda functions written in the Python language.

  • on_device_service_configuration (Optional[OnDeviceServiceConfiguration], default: None ) –

    Specifies the service or services on the Snow Family device that your transferred data will be exported from or imported into. Amazon Web Services Snow Family device clusters support Amazon S3 and NFS (Network File System).

  • description (Optional[String], default: None ) –

    An optional description of this specific cluster, for example Environmental Data Cluster-01.

  • address_id (AddressId) –

    The ID for the address that you want the cluster shipped to.

  • kms_key_arn (Optional[KmsKeyARN], default: None ) –

    The KmsKeyARN value that you want to associate with this cluster. KmsKeyARN values are created by using the CreateKey API action in Key Management Service (KMS).

  • role_arn (Optional[RoleARN], default: None ) –

    The RoleARN that you want to associate with this cluster. RoleArn values are created by using the CreateRole API action in Identity and Access Management (IAM).

  • snowball_type (SnowballType) –

    The type of Snow Family devices to use for this cluster.

    For cluster jobs, Amazon Web Services Snow Family currently supports only the EDGE device type.

    For more information, see "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the Snowcone User Guide or "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the Snowcone User Guide.

  • shipping_option (ShippingOption) –

    The shipping speed for each node in this cluster. This speed doesn't dictate how soon you'll get each Snowball Edge device, rather it represents how quickly each device moves to its destination while in transit. Regional shipping speeds are as follows:

    • In Australia, you have access to express shipping. Typically, Snow devices shipped express are delivered in about a day.

    • In the European Union (EU), you have access to express shipping. Typically, Snow devices shipped express are delivered in about a day. In addition, most countries in the EU have access to standard shipping, which typically takes less than a week, one way.

    • In India, Snow devices are delivered in one to seven days.

    • In the United States of America (US), you have access to one-day shipping and two-day shipping.

    • In Australia, you have access to express shipping. Typically, devices shipped express are delivered in about a day.

    • In the European Union (EU), you have access to express shipping. Typically, Snow devices shipped express are delivered in about a day. In addition, most countries in the EU have access to standard shipping, which typically takes less than a week, one way.

    • In India, Snow devices are delivered in one to seven days.

    • In the US, you have access to one-day shipping and two-day shipping.

  • notification (Optional[Notification], default: None ) –

    The Amazon Simple Notification Service (Amazon SNS) notification settings for this cluster.

  • forwarding_address_id (Optional[AddressId], default: None ) –

    The forwarding address ID for a cluster. This field is not supported in most regions.

  • tax_documents (Optional[TaxDocuments], default: None ) –

    The tax documents required in your Amazon Web Services Region.

  • remote_management (Optional[RemoteManagement], default: None ) –

    Allows you to securely operate and manage Snow devices in a cluster remotely from outside of your internal network. When set to INSTALLED_AUTOSTART, remote management will automatically be available when the device arrives at your location. Otherwise, you need to use the Snowball Client to manage the device.

  • initial_cluster_size (Optional[InitialClusterSize], default: None ) –

    If provided, each job will be automatically created and associated with the new cluster. If not provided, will be treated as 0.

  • force_create_jobs (Optional[Boolean], default: None ) –

    Force to create cluster when user attempts to overprovision or underprovision a cluster. A cluster is overprovisioned or underprovisioned if the initial size of the cluster is more (overprovisioned) or less (underprovisioned) than what needed to meet capacity requirement specified with OnDeviceServiceConfiguration.

  • long_term_pricing_ids (Optional[LongTermPricingIdList], default: None ) –

    Lists long-term pricing id that will be used to associate with jobs automatically created for the new cluster.

  • snowball_capacity_preference (Optional[SnowballCapacity], default: None ) –

    If your job is being created in one of the US regions, you have the option of specifying what size Snow device you'd like for this job. In all other regions, Snowballs come with 80 TB in storage capacity.

    For more information, see "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the Snowcone User Guide or "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the Snowcone User Guide.

Raises:

Examples:

To create a cluster Creates an empty cluster. Each cluster supports five nodes. You use the CreateJob action separately to create the jobs for each of these nodes. The cluster does not ship until these five node jobs have been created.

>>> client.create_cluster(job_type='LOCAL_USE', resources={'S3Resources': [{'BucketArn': 'arn:aws:s3:::MyBucket', 'KeyRange': {}}]}, description='MyCluster', address_id='ADID1234ab12-3eec-4eb3-9be6-9374c10eb51b', kms_key_arn='arn:aws:kms:us-east-1:123456789012:key/abcd1234-12ab-34cd-56ef-123456123456', role_arn='arn:aws:iam::123456789012:role/snowball-import-S3-role', snowball_type='EDGE', shipping_option='SECOND_DAY', notification={'NotifyAll': False, 'JobStatesToNotify': []})
Source code in docs_src/capo_snowball/_services/snowball.py
def create_cluster(
    self,
    job_type: "capo_snowball.types.job_type.JobType",
    address_id: "capo_snowball.types.address_id.AddressId",
    snowball_type: "capo_snowball.types.snowball_type.SnowballType",
    shipping_option: "capo_snowball.types.shipping_option.ShippingOption",
    *,
    config_overrides: Optional[SnowballClientConfig] = None,
    resources: Optional["capo_snowball.types.job_resource.JobResource"] = None,
    on_device_service_configuration: Optional[
        "capo_snowball.types.on_device_service_configuration.OnDeviceServiceConfiguration"
    ] = None,
    description: Optional["capo_snowball.types.string.String"] = None,
    kms_key_arn: Optional["capo_snowball.types.kms_key_arn.KmsKeyARN"] = None,
    role_arn: Optional["capo_snowball.types.role_arn.RoleARN"] = None,
    notification: Optional["capo_snowball.types.notification.Notification"] = None,
    forwarding_address_id: Optional[
        "capo_snowball.types.address_id.AddressId"
    ] = None,
    tax_documents: Optional[
        "capo_snowball.types.tax_documents.TaxDocuments"
    ] = None,
    remote_management: Optional[
        "capo_snowball.types.remote_management.RemoteManagement"
    ] = None,
    initial_cluster_size: Optional[
        "capo_snowball.types.initial_cluster_size.InitialClusterSize"
    ] = None,
    force_create_jobs: Optional["capo_snowball.types.boolean.Boolean"] = None,
    long_term_pricing_ids: Optional[
        "capo_snowball.types.long_term_pricing_id_list.LongTermPricingIdList"
    ] = None,
    snowball_capacity_preference: Optional[
        "capo_snowball.types.snowball_capacity.SnowballCapacity"
    ] = None,
) -> "capo_snowball.types.create_cluster_result.CreateClusterResult":
    """<p>Creates an empty cluster. Each cluster supports five nodes. You use the <a>CreateJob</a> action separately to create the jobs for each of these nodes. The cluster does not ship until these five node jobs have been created.</p>

    Args:
        job_type: <p>The type of job for this cluster. Currently, the only job type supported for clusters is <code>LOCAL_USE</code>.</p> <p>For more information, see "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the <i>Snowcone User Guide</i> or "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the <i>Snowcone User Guide</i>.</p>
        resources: <p>The resources associated with the cluster job. These resources include Amazon S3 buckets and optional Lambda functions written in the Python language. </p>
        on_device_service_configuration: <p>Specifies the service or services on the Snow Family device that your transferred data will be exported from or imported into. Amazon Web Services Snow Family device clusters support Amazon S3 and NFS (Network File System).</p>
        description: <p>An optional description of this specific cluster, for example <code>Environmental Data Cluster-01</code>.</p>
        address_id: <p>The ID for the address that you want the cluster shipped to.</p>
        kms_key_arn: <p>The <code>KmsKeyARN</code> value that you want to associate with this cluster. <code>KmsKeyARN</code> values are created by using the <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html">CreateKey</a> API action in Key Management Service (KMS). </p>
        role_arn: <p>The <code>RoleARN</code> that you want to associate with this cluster. <code>RoleArn</code> values are created by using the <a href="https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html">CreateRole</a> API action in Identity and Access Management (IAM).</p>
        snowball_type: <p>The type of Snow Family devices to use for this cluster. </p> <note> <p>For cluster jobs, Amazon Web Services Snow Family currently supports only the <code>EDGE</code> device type.</p> </note> <p>For more information, see "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the <i>Snowcone User Guide</i> or "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the <i>Snowcone User Guide</i>.</p>
        shipping_option: <p>The shipping speed for each node in this cluster. This speed doesn't dictate how soon you'll get each Snowball Edge device, rather it represents how quickly each device moves to its destination while in transit. Regional shipping speeds are as follows: </p> <ul> <li> <p>In Australia, you have access to express shipping. Typically, Snow devices shipped express are delivered in about a day.</p> </li> <li> <p>In the European Union (EU), you have access to express shipping. Typically, Snow devices shipped express are delivered in about a day. In addition, most countries in the EU have access to standard shipping, which typically takes less than a week, one way.</p> </li> <li> <p>In India, Snow devices are delivered in one to seven days.</p> </li> <li> <p>In the United States of America (US), you have access to one-day shipping and two-day shipping.</p> </li> </ul> <ul> <li> <p>In Australia, you have access to express shipping. Typically, devices shipped express are delivered in about a day.</p> </li> <li> <p>In the European Union (EU), you have access to express shipping. Typically, Snow devices shipped express are delivered in about a day. In addition, most countries in the EU have access to standard shipping, which typically takes less than a week, one way.</p> </li> <li> <p>In India, Snow devices are delivered in one to seven days.</p> </li> <li> <p>In the US, you have access to one-day shipping and two-day shipping.</p> </li> </ul>
        notification: <p>The Amazon Simple Notification Service (Amazon SNS) notification settings for this cluster.</p>
        forwarding_address_id: <p>The forwarding address ID for a cluster. This field is not supported in most regions.</p>
        tax_documents: <p>The tax documents required in your Amazon Web Services Region.</p>
        remote_management: <p>Allows you to securely operate and manage Snow devices in a cluster remotely from outside of your internal network. When set to <code>INSTALLED_AUTOSTART</code>, remote management will automatically be available when the device arrives at your location. Otherwise, you need to use the Snowball Client to manage the device.</p>
        initial_cluster_size: <p>If provided, each job will be automatically created and associated with the new cluster. If not provided, will be treated as 0.</p>
        force_create_jobs: <p>Force to create cluster when user attempts to overprovision or underprovision a cluster. A cluster is overprovisioned or underprovisioned if the initial size of the cluster is more (overprovisioned) or less (underprovisioned) than what needed to meet capacity requirement specified with <code>OnDeviceServiceConfiguration</code>.</p>
        long_term_pricing_ids: <p>Lists long-term pricing id that will be used to associate with jobs automatically created for the new cluster.</p>
        snowball_capacity_preference: <p>If your job is being created in one of the US regions, you have the option of specifying what size Snow device you'd like for this job. In all other regions, Snowballs come with 80 TB in storage capacity.</p> <p>For more information, see "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the <i>Snowcone User Guide</i> or "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the <i>Snowcone User Guide</i>.</p>

    Raises:
        capo_snowball.errors.ec2_request_failed_exception.Ec2RequestFailedException: <p>Your user lacks the necessary Amazon EC2 permissions to perform the attempted action.</p>
        capo_snowball.errors.invalid_input_combination_exception.InvalidInputCombinationException: <p>Job or cluster creation failed. One or more inputs were invalid. Confirm that the <a>CreateClusterRequest$SnowballType</a> value supports your <a>CreateJobRequest$JobType</a>, and try again.</p>
        capo_snowball.errors.invalid_resource_exception.InvalidResourceException: <p>The specified resource can't be found. Check the information you provided in your last request, and try again.</p>
        capo_snowball.errors.kms_request_failed_exception.KMSRequestFailedException: <p>The provided Key Management Service key lacks the permissions to perform the specified <a>CreateJob</a> or <a>UpdateJob</a> action.</p>
        capo_snowball.errors.UnknownServiceError: The service returned an error code this client does not model.

    Examples:
        To create a cluster
        Creates an empty cluster. Each cluster supports five nodes. You use the CreateJob action separately to create the jobs for each of these nodes. The cluster does not ship until these five node jobs have been created.

        >>> client.create_cluster(job_type='LOCAL_USE', resources={'S3Resources': [{'BucketArn': 'arn:aws:s3:::MyBucket', 'KeyRange': {}}]}, description='MyCluster', address_id='ADID1234ab12-3eec-4eb3-9be6-9374c10eb51b', kms_key_arn='arn:aws:kms:us-east-1:123456789012:key/abcd1234-12ab-34cd-56ef-123456123456', role_arn='arn:aws:iam::123456789012:role/snowball-import-S3-role', snowball_type='EDGE', shipping_option='SECOND_DAY', notification={'NotifyAll': False, 'JobStatesToNotify': []})
    """

    def _handler(
        req: "OperationRequest[capo_snowball.types.create_cluster_request.CreateClusterRequest]",
    ) -> OperationResponse[
        "capo_snowball.types.create_cluster_result.CreateClusterResult"
    ]:
        import capo_snowball._operations.awsie_snowball_job_management_service.create_cluster

        output, http_response = (
            capo_snowball._operations.awsie_snowball_job_management_service.create_cluster.create_cluster(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("CreateCluster")
    )
    input_: capo_snowball.types.create_cluster_request.CreateClusterRequest = {
        "job_type": job_type,
        "address_id": address_id,
        "snowball_type": snowball_type,
        "shipping_option": shipping_option,
    }
    if resources is not None:
        input_["resources"] = resources
    if on_device_service_configuration is not None:
        input_["on_device_service_configuration"] = on_device_service_configuration
    if description is not None:
        input_["description"] = description
    if kms_key_arn is not None:
        input_["kms_key_arn"] = kms_key_arn
    if role_arn is not None:
        input_["role_arn"] = role_arn
    if notification is not None:
        input_["notification"] = notification
    if forwarding_address_id is not None:
        input_["forwarding_address_id"] = forwarding_address_id
    if tax_documents is not None:
        input_["tax_documents"] = tax_documents
    if remote_management is not None:
        input_["remote_management"] = remote_management
    if initial_cluster_size is not None:
        input_["initial_cluster_size"] = initial_cluster_size
    if force_create_jobs is not None:
        input_["force_create_jobs"] = force_create_jobs
    if long_term_pricing_ids is not None:
        input_["long_term_pricing_ids"] = long_term_pricing_ids
    if snowball_capacity_preference is not None:
        input_["snowball_capacity_preference"] = snowball_capacity_preference

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output