Attaches or replaces a resource-based policy on the specified feed. A resource-based policy grants cross-account access to the feed.
Parameters:
-
id
(FeedId)
–
The ID of the feed to attach the policy to.
-
policy
(PolicyDocument)
–
The resource-based policy document to attach to the feed.
Raises:
-
AccessDeniedException
–
You do not have sufficient access to perform this action.
-
ConflictException
–
The request could not be completed due to a conflict.
-
InternalServerErrorException
–
An internal server error occurred. This is a temporary condition and the request can be retried. If the problem persists, contact AWS Support.
-
ResourceNotFoundException
–
The resource specified in the action doesn't exist.
-
TooManyRequestException
–
The request was denied due to request throttling. Too many requests have been made within a given time period. Reduce the frequency of requests and use exponential backoff when retrying.
-
ValidationException
–
The input fails to satisfy the constraints specified by the service. Check the error message for details about which parameter or field is invalid and correct the request before retrying.
-
UnknownServiceError
–
The service returned an error code this client does not model.
Source code in docs_src/capo_elementalinference/_services/async_elemental_inference.py
| async def put_feed_policy(
self,
id: "capo_elementalinference.types.feed_id.FeedId",
policy: "capo_elementalinference.types.policy_document.PolicyDocument",
*,
config_overrides: Optional[AsyncElementalInferenceClientConfig] = None,
) -> "capo_elementalinference.types.put_feed_policy_response.PutFeedPolicyResponse":
"""<p>Attaches or replaces a resource-based policy on the specified feed. A resource-based policy grants cross-account access to the feed. </p>
Args:
id: <p>The ID of the feed to attach the policy to.</p>
policy: <p>The resource-based policy document to attach to the feed.</p>
Raises:
capo_elementalinference.errors.access_denied_exception.AccessDeniedException: <p>You do not have sufficient access to perform this action.</p>
capo_elementalinference.errors.conflict_exception.ConflictException: <p>The request could not be completed due to a conflict.</p>
capo_elementalinference.errors.internal_server_error_exception.InternalServerErrorException: <p>An internal server error occurred. This is a temporary condition and the request can be retried. If the problem persists, contact AWS Support. </p>
capo_elementalinference.errors.resource_not_found_exception.ResourceNotFoundException: <p>The resource specified in the action doesn't exist.</p>
capo_elementalinference.errors.too_many_request_exception.TooManyRequestException: <p>The request was denied due to request throttling. Too many requests have been made within a given time period. Reduce the frequency of requests and use exponential backoff when retrying. </p>
capo_elementalinference.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service. Check the error message for details about which parameter or field is invalid and correct the request before retrying. </p>
capo_elementalinference.errors.UnknownServiceError: The service returned an error code this client does not model.
"""
async def _handler(
req: "AsyncOperationRequest[capo_elementalinference.types.put_feed_policy_request.PutFeedPolicyRequest]",
) -> AsyncOperationResponse[
"capo_elementalinference.types.put_feed_policy_response.PutFeedPolicyResponse"
]:
import capo_elementalinference._operations.elemental_inference.put_feed_policy
(
output,
http_response,
) = await capo_elementalinference._operations.elemental_inference.put_feed_policy.async_put_feed_policy(
req.options, req.input
)
return AsyncOperationResponse(output=output, response=http_response)
interceptors_, options_ = self.operation_options(
config_overrides, OperationLogging("PutFeedPolicy")
)
input_: capo_elementalinference.types.put_feed_policy_request.PutFeedPolicyRequest = {
"id": id,
"policy": policy,
}
response = await aexecute_pipeline(
AsyncOperationRequest(input=input_, options=options_),
handler=_handler,
interceptors=list(interceptors_),
)
await response.response.aclose()
return response.output
|