Skip to content

put_vector_bucket_policy async

put_vector_bucket_policy(
    policy: VectorBucketPolicy,
    *,
    config_overrides: Optional[AsyncS3VectorsClientConfig] = None,
    vector_bucket_name: Optional[VectorBucketName] = None,
    vector_bucket_arn: Optional[VectorBucketArn] = None,
) -> PutVectorBucketPolicyOutput

Creates a bucket policy for a vector bucket. To specify the bucket, you must use either the vector bucket name or the vector bucket Amazon Resource Name (ARN).

Permissions

You must have the s3vectors:PutVectorBucketPolicy permission to use this operation.

Parameters:

Raises:

Source code in docs_src/capo_s3vectors/_services/async_s3_vectors.py
async def put_vector_bucket_policy(
    self,
    policy: "capo_s3vectors.types.vector_bucket_policy.VectorBucketPolicy",
    *,
    config_overrides: Optional[AsyncS3VectorsClientConfig] = None,
    vector_bucket_name: Optional[
        "capo_s3vectors.types.vector_bucket_name.VectorBucketName"
    ] = None,
    vector_bucket_arn: Optional[
        "capo_s3vectors.types.vector_bucket_arn.VectorBucketArn"
    ] = None,
) -> "capo_s3vectors.types.put_vector_bucket_policy_output.PutVectorBucketPolicyOutput":
    """<p>Creates a bucket policy for a vector bucket. To specify the bucket, you must use either the vector bucket name or the vector bucket Amazon Resource Name (ARN). </p> <dl> <dt>Permissions</dt> <dd> <p>You must have the <code>s3vectors:PutVectorBucketPolicy</code> permission to use this operation. </p> </dd> </dl>

    Args:
        vector_bucket_name: <p>The name of the vector bucket.</p>
        vector_bucket_arn: <p>The Amazon Resource Name (ARN) of the vector bucket.</p>
        policy: <p>The <code>JSON</code> that defines the policy. For more information about bucket policies for S3 Vectors, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors-bucket-policy.html">Managing vector bucket policies</a> in the <i>Amazon S3 User Guide</i>.</p>

    Raises:
        capo_s3vectors.errors.access_denied_exception.AccessDeniedException: <p>Access denied.</p>
        capo_s3vectors.errors.internal_server_exception.InternalServerException: <p>The request failed due to an internal server error.</p>
        capo_s3vectors.errors.request_timeout_exception.RequestTimeoutException: <p>The request timed out. Retry your request.</p>
        capo_s3vectors.errors.too_many_requests_exception.TooManyRequestsException: <p>The request was denied due to request throttling.</p>
        capo_s3vectors.errors.validation_exception.ValidationException: <p>The requested action isn't valid.</p>
        capo_s3vectors.errors.not_found_exception.NotFoundException: <p>The request was rejected because the specified resource can't be found.</p>
        capo_s3vectors.errors.service_unavailable_exception.ServiceUnavailableException: <p>The service is unavailable. Wait briefly and retry your request. If it continues to fail, increase your waiting time between retries.</p>
        capo_s3vectors.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_s3vectors.types.put_vector_bucket_policy_input.PutVectorBucketPolicyInput]",
    ) -> AsyncOperationResponse[
        "capo_s3vectors.types.put_vector_bucket_policy_output.PutVectorBucketPolicyOutput"
    ]:
        import capo_s3vectors._operations.s3_vectors.put_vector_bucket_policy

        (
            output,
            http_response,
        ) = await capo_s3vectors._operations.s3_vectors.put_vector_bucket_policy.async_put_vector_bucket_policy(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("PutVectorBucketPolicy")
    )
    input_: capo_s3vectors.types.put_vector_bucket_policy_input.PutVectorBucketPolicyInput = {
        "policy": policy
    }
    if vector_bucket_name is not None:
        input_["vector_bucket_name"] = vector_bucket_name
    if vector_bucket_arn is not None:
        input_["vector_bucket_arn"] = vector_bucket_arn

    response = await aexecute_pipeline(
        AsyncOperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    await response.response.aclose()
    return response.output