Skip to content

put_resource_permission_statement

put_resource_permission_statement(
    *,
    config_overrides: Optional[SigninClientConfig] = None,
    source_vpc: Optional[SourceVpc] = None,
    signin_source_vpce: Optional[SourceVpce] = None,
    console_source_vpce: Optional[SourceVpce] = None,
    vpc_source_ip: Optional[VpcSourceIp] = None,
    source_ip: Optional[SourceIp] = None,
    requested_region: Optional[RequestedRegion] = None,
    excluded_principal: Optional[ExcludedPrincipal] = None,
    client_token: Optional[ClientToken] = None,
) -> PutResourcePermissionStatementOutput

Create a permission statement in the account's SignIn resource-based policy

Parameters:

  • source_vpc (Optional[SourceVpc], default: None ) –

    VPC identifier to restrict console access

  • signin_source_vpce (Optional[SourceVpce], default: None ) –

    SignIn VPC endpoint identifier

  • console_source_vpce (Optional[SourceVpce], default: None ) –

    Console VPC endpoint identifier

  • vpc_source_ip (Optional[VpcSourceIp], default: None ) –

    Source IP address within VPC

  • source_ip (Optional[SourceIp], default: None ) –

    Source IP address

  • requested_region (Optional[RequestedRegion], default: None ) –

    AWS region where the VPC and VPC endpoint reside Required when sourceVpc or signinSourceVpce/consoleSourceVpce is provided

  • excluded_principal (Optional[ExcludedPrincipal], default: None ) –

    Principal to exclude from the permission statement

  • client_token (Optional[ClientToken], default: None ) –

    Idempotency token for the request

Raises:

  • AccessDeniedException –

    Error thrown for access denied scenarios with flexible HTTP status mapping Runtime HTTP Status Code Mapping: - HTTP 401 (Unauthorized): TOKEN_EXPIRED, AUTHCODE_EXPIRED - HTTP 403 (Forbidden): USER_CREDENTIALS_CHANGED, INSUFFICIENT_PERMISSIONS The specific HTTP status code is determined at runtime based on the error enum value. Consumers should use the error field to determine the specific access denial reason.

  • ConflictException –

    Error thrown when request conflicts with current state HTTP Status Code: 409 Conflict Used when the request conflicts with the current state of the resource

  • InternalServerException –

    Error thrown when an internal server error occurs HTTP Status Code: 500 Internal Server Error Used for unexpected server-side errors that prevent request processing.

  • ServiceQuotaExceededException –

    Error thrown when service quota is exceeded HTTP Status Code: 402 Payment Required (used as quota exceeded indicator) Used when the request would cause a service quota to be exceeded

  • TooManyRequestsError –

    Error thrown when rate limit is exceeded HTTP Status Code: 429 Too Many Requests Possible OAuth2ErrorCode values: - INVALID_REQUEST: Rate limiting, too many requests, abuse prevention Possible causes: - Too many token requests from the same client - Rate limiting based on client_id or IP address - Abuse prevention mechanisms triggered - Service protection against excessive token generation

  • ValidationException –

    Error thrown when request validation fails HTTP Status Code: 400 Bad Request Used for request validation errors such as malformed parameters, missing required fields, or invalid parameter values.

  • UnknownServiceError –

    The service returned an error code this client does not model.

Source code in docs_src/capo_signin/_services/signin.py
def put_resource_permission_statement(
    self,
    *,
    config_overrides: Optional[SigninClientConfig] = None,
    source_vpc: Optional["capo_signin.types.source_vpc.SourceVpc"] = None,
    signin_source_vpce: Optional["capo_signin.types.source_vpce.SourceVpce"] = None,
    console_source_vpce: Optional[
        "capo_signin.types.source_vpce.SourceVpce"
    ] = None,
    vpc_source_ip: Optional["capo_signin.types.vpc_source_ip.VpcSourceIp"] = None,
    source_ip: Optional["capo_signin.types.source_ip.SourceIp"] = None,
    requested_region: Optional[
        "capo_signin.types.requested_region.RequestedRegion"
    ] = None,
    excluded_principal: Optional[
        "capo_signin.types.excluded_principal.ExcludedPrincipal"
    ] = None,
    client_token: Optional["capo_signin.types.client_token.ClientToken"] = None,
) -> "capo_signin.types.put_resource_permission_statement_output.PutResourcePermissionStatementOutput":
    """Create a permission statement in the account's SignIn resource-based policy

    Args:
        source_vpc: VPC identifier to restrict console access
        signin_source_vpce: SignIn VPC endpoint identifier
        console_source_vpce: Console VPC endpoint identifier
        vpc_source_ip: Source IP address within VPC
        source_ip: Source IP address
        requested_region: AWS region where the VPC and VPC endpoint reside Required when sourceVpc or signinSourceVpce/consoleSourceVpce is provided
        excluded_principal: Principal to exclude from the permission statement
        client_token: Idempotency token for the request

    Raises:
        capo_signin.errors.access_denied_exception.AccessDeniedException: Error thrown for access denied scenarios with flexible HTTP status mapping Runtime HTTP Status Code Mapping: - HTTP 401 (Unauthorized): TOKEN_EXPIRED, AUTHCODE_EXPIRED - HTTP 403 (Forbidden): USER_CREDENTIALS_CHANGED, INSUFFICIENT_PERMISSIONS The specific HTTP status code is determined at runtime based on the error enum value. Consumers should use the error field to determine the specific access denial reason.
        capo_signin.errors.conflict_exception.ConflictException: Error thrown when request conflicts with current state HTTP Status Code: 409 Conflict Used when the request conflicts with the current state of the resource
        capo_signin.errors.internal_server_exception.InternalServerException: Error thrown when an internal server error occurs HTTP Status Code: 500 Internal Server Error Used for unexpected server-side errors that prevent request processing.
        capo_signin.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: Error thrown when service quota is exceeded HTTP Status Code: 402 Payment Required (used as quota exceeded indicator) Used when the request would cause a service quota to be exceeded
        capo_signin.errors.too_many_requests_error.TooManyRequestsError: Error thrown when rate limit is exceeded HTTP Status Code: 429 Too Many Requests Possible OAuth2ErrorCode values: - INVALID_REQUEST: Rate limiting, too many requests, abuse prevention Possible causes: - Too many token requests from the same client - Rate limiting based on client_id or IP address - Abuse prevention mechanisms triggered - Service protection against excessive token generation
        capo_signin.errors.validation_exception.ValidationException: Error thrown when request validation fails HTTP Status Code: 400 Bad Request Used for request validation errors such as malformed parameters, missing required fields, or invalid parameter values.
        capo_signin.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_signin.types.put_resource_permission_statement_input.PutResourcePermissionStatementInput]",
    ) -> OperationResponse[
        "capo_signin.types.put_resource_permission_statement_output.PutResourcePermissionStatementOutput"
    ]:
        import capo_signin._operations.signin.put_resource_permission_statement

        output, http_response = (
            capo_signin._operations.signin.put_resource_permission_statement.put_resource_permission_statement(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("PutResourcePermissionStatement")
    )
    input_: capo_signin.types.put_resource_permission_statement_input.PutResourcePermissionStatementInput = {}
    if source_vpc is not None:
        input_["source_vpc"] = source_vpc
    if signin_source_vpce is not None:
        input_["signin_source_vpce"] = signin_source_vpce
    if console_source_vpce is not None:
        input_["console_source_vpce"] = console_source_vpce
    if vpc_source_ip is not None:
        input_["vpc_source_ip"] = vpc_source_ip
    if source_ip is not None:
        input_["source_ip"] = source_ip
    if requested_region is not None:
        input_["requested_region"] = requested_region
    if excluded_principal is not None:
        input_["excluded_principal"] = excluded_principal
    if client_token is None:
        client_token = str(uuid.uuid4())
    input_["client_token"] = client_token

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