lib/oci/identity/identity_client.rb
# Creates a new policy in the specified compartment (either the tenancy or another of your compartments).
# If you're new to policies, see [Getting Started with Policies](https://docs.cloud.oracle.com/Content/Identity/Concepts/policygetstarted.htm).
#
# You must specify a *name* for the policy, which must be unique across all policies in your tenancy
# and cannot be changed.
#
# You must also specify a *description* for the policy (although it can be an empty string). It does not
# have to be unique, and you can change it anytime with {#update_policy update_policy}.
#
# You must specify one or more policy statements in the statements array. For information about writing
# policies, see [How Policies Work](https://docs.cloud.oracle.com/Content/Identity/Concepts/policies.htm) and
# [Common Policies](https://docs.cloud.oracle.com/Content/Identity/Concepts/commonpolicies.htm).
#
# After you send your request, the new object's `lifecycleState` will temporarily be CREATING. Before using the
# object, first make sure its `lifecycleState` has changed to ACTIVE.
#
# New policies take effect typically within 10 seconds.
#
# @param [OCI::Identity::Models::CreatePolicyDetails] create_policy_details Request object for creating a new policy.
# @param [Hash] opts the optional parameters
# @option opts [OCI::Retry::RetryConfig] :retry_config The retry configuration to apply to this operation. If no key is provided then the service-level
#   retry configuration defined by {#retry_config} will be used. If an explicit `nil` value is provided then the operation will not retry
# @option opts [String] :opc_retry_token A token that uniquely identifies a request so it can be retried in case of a timeout or
#   server error without risk of executing that same action again. Retry tokens expire after 24
#   hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
#   has been deleted and purged from the system, then a retry of the original creation request
#   may be rejected).
#
# @return [Response] A Response object with data of type {OCI::Identity::Models::Policy Policy}
Creates a new policy in the specified compartment (either the tenancy or another of your compartments).
If you're new to policies, see [Getting Started with Policies].

You must specify a *name* for the policy, which must be unique across all policies in your tenancy
and cannot be changed.

You must also specify a *description* for the policy (although it can be an empty string). It does not
have to be unique, and you can change it anytime with {#update_policy update_policy}.

You must specify one or more policy statements in the statements array. For information about writing
policies, see [How Policies Work] and
[Common Policies].

After you send your request, the new object's `lifecycleState` will temporarily be CREATING. Before using the
object, first make sure its `lifecycleState` has changed to ACTIVE.

New policies take effect typically within 10 seconds.
Creates a new policy in the specified compartment ( either the tenancy or another of your compartments ) . If you ' re new to policies see [ Getting Started with Policies ] . You must specify a * name * for the policy which must be unique across all policies in your tenancy and cannot be changed . You must also specify a * description * for the policy ( although it can be an empty string ) . It does not have to be unique and you can change it anytime with { #update_policy update_policy } . You must specify one or more policy statements in the statements array . For information about writing policies see [ How Policies Work ] and [ Common Policies ] . After you send your request the new object ' s ` lifecycleState ` will temporarily be CREATING . Before using the object first make sure its ` lifecycleState ` has changed to ACTIVE . New policies take effect typically within 10 seconds .
def create_policy(create_policy_details, opts = {})
      logger.debug 'Calling operation IdentityClient#create_policy.' if logger
      raise "Missing the required parameter 'create_policy_details' when calling create_policy." if create_policy_details.nil?
      path = '/policies/'
      operation_signing_strategy = :standard
      query_params = {}
      header_params = {}
      header_params[:accept] = 'application/json'
      header_params[:'content-type'] = 'application/json'
      header_params[:'opc-retry-token'] = opts[:opc_retry_token] if opts[:opc_retry_token]
      header_params[:'opc-retry-token'] ||= OCI::Retry.generate_opc_retry_token
      post_body = @api_client.object_to_http_body(create_policy_details)
      OCI::Retry.make_retrying_call(applicable_retry_config(opts), call_name: 'IdentityClient#create_policy') do
        @api_client.call_api(
          :POST,
          path,
          endpoint,
          header_params: header_params,
          query_params: query_params,
          operation_signing_strategy: operation_signing_strategy,
          body: post_body,
          return_type: 'OCI::Identity::Models::Policy'
        )
      end
    end
def create_policy ( create_policy_details , opts = { } ) logger . debug 'Calling operation IdentityClient#create_policy.' if logger raise "Missing the required parameter 'create_policy_details' when calling create_policy." if create_policy_details . nil? path = '/policies/' operation_signing_strategy = :standard query_params = { } header_params = { } header_params [ :accept ] = 'application/json' header_params [ :' content-type ' ] = 'application/json' header_params [ :' opc-retry-token ' ] = opts [ :opc_retry_token ] if opts [ :opc_retry_token ] header_params [ :' opc-retry-token ' ] ||= OCI :: Retry . generate_opc_retry_token post_body = @api_client . object_to_http_body ( create_policy_details ) OCI :: Retry . make_retrying_call ( applicable_retry_config ( opts ) , call_name : 'IdentityClient#create_policy' ) do @api_client . call_api ( :POST , path , endpoint , header_params : header_params , query_params : query_params , operation_signing_strategy : operation_signing_strategy , body : post_body , return_type : 'OCI::Identity::Models::Policy' ) end end
Creates a new policy in the specified compartment (either the tenancy or another of your compartments).
Creates a new policy in the specified compartment ( either the tenancy or another of your compartments ) .
# rubocop:disable Style/NegatedIf # Query Params # Header Params # rubocop:enable Style/NegatedIf # rubocop:disable Metrics/BlockLength # rubocop:enable Metrics/BlockLength
A Response object with data of type {OCI::Identity::Models::Policy Policy}
A Response object with data of type { OCI :: Identity :: Models :: Policy Policy }
Response
create_policy_details
<not_specific>
opts
:opc_retry_token A token that uniquely identifies a request so it can be retried in case of a timeout or server error without risk of executing that same action again. Retry tokens expire after 24 hours, but can be invalidated before then due to conflicting operations .
: opc_retry_token A token that uniquely identifies a request so it can be retried in case of a timeout or server error without risk of executing that same action again . Retry tokens expire after 24 hours but can be invalidated before then due to conflicting operations .
<not_specific>
opts the optional parameters
opts the optional parameters