github.com/crossplane/upjet@v1.3.0/pkg/registry/testdata/gcp/r/access_context_manager_access_level.html.markdown (about)

     1  <!--
     2  SPDX-FileCopyrightText: 2023 The Crossplane Authors <https://crossplane.io>
     3  
     4  SPDX-License-Identifier: Apache-2.0
     5  -->
     6  
     7  ---
     8  # ----------------------------------------------------------------------------
     9  #
    10  #     ***     AUTO GENERATED CODE    ***    Type: MMv1     ***
    11  #
    12  # ----------------------------------------------------------------------------
    13  #
    14  #     This file is automatically generated by Magic Modules and manual
    15  #     changes will be clobbered when the file is regenerated.
    16  #
    17  #     Please read more about how to change this file in
    18  #     .github/CONTRIBUTING.md.
    19  #
    20  # ----------------------------------------------------------------------------
    21  subcategory: "Access Context Manager (VPC Service Controls)"
    22  layout: "google"
    23  page_title: "Google: google_access_context_manager_access_level"
    24  sidebar_current: "docs-google-access-context-manager-access-level"
    25  description: |-
    26    An AccessLevel is a label that can be applied to requests to GCP services,
    27    along with a list of requirements necessary for the label to be applied.
    28  ---
    29  
    30  # google\_access\_context\_manager\_access\_level
    31  
    32  An AccessLevel is a label that can be applied to requests to GCP services,
    33  along with a list of requirements necessary for the label to be applied.
    34  
    35  
    36  To get more information about AccessLevel, see:
    37  
    38  * [API documentation](https://cloud.google.com/access-context-manager/docs/reference/rest/v1/accessPolicies.accessLevels)
    39  * How-to Guides
    40      * [Access Policy Quickstart](https://cloud.google.com/access-context-manager/docs/quickstart)
    41  
    42  ~> **Warning:** If you are using User ADCs (Application Default Credentials) with this resource,
    43  you must specify a `billing_project` and set `user_project_override` to true
    44  in the provider configuration. Otherwise the ACM API will return a 403 error.
    45  Your account must have the `serviceusage.services.use` permission on the
    46  `billing_project` you defined.
    47  
    48  ## Example Usage - Access Context Manager Access Level Basic
    49  
    50  
    51  ```hcl
    52  resource "google_access_context_manager_access_level" "access-level" {
    53    parent = "accessPolicies/${google_access_context_manager_access_policy.access-policy.name}"
    54    name   = "accessPolicies/${google_access_context_manager_access_policy.access-policy.name}/accessLevels/chromeos_no_lock"
    55    title  = "chromeos_no_lock"
    56    basic {
    57      conditions {
    58        device_policy {
    59          require_screen_lock = true
    60          os_constraints {
    61            os_type = "DESKTOP_CHROME_OS"
    62          }
    63        }
    64        regions = [
    65  	"CH",
    66  	"IT",
    67  	"US",
    68        ]
    69      }
    70    }
    71  }
    72  
    73  resource "google_access_context_manager_access_policy" "access-policy" {
    74    parent = "organizations/123456789"
    75    title  = "my policy"
    76  }
    77  ```
    78  
    79  ## Argument Reference
    80  
    81  The following arguments are supported:
    82  
    83  
    84  * `title` -
    85    (Required)
    86    Human readable title. Must be unique within the Policy.
    87  
    88  * `parent` -
    89    (Required)
    90    The AccessPolicy this AccessLevel lives in.
    91    Format: accessPolicies/{policy_id}
    92  
    93  * `name` -
    94    (Required)
    95    Resource name for the Access Level. The short_name component must begin
    96    with a letter and only include alphanumeric and '_'.
    97    Format: accessPolicies/{policy_id}/accessLevels/{short_name}
    98  
    99  
   100  - - -
   101  
   102  
   103  * `description` -
   104    (Optional)
   105    Description of the AccessLevel and its use. Does not affect behavior.
   106  
   107  * `basic` -
   108    (Optional)
   109    A set of predefined conditions for the access level and a combining function.
   110    Structure is [documented below](#nested_basic).
   111  
   112  * `custom` -
   113    (Optional)
   114    Custom access level conditions are set using the Cloud Common Expression Language to represent the necessary conditions for the level to apply to a request. 
   115    See CEL spec at: https://github.com/google/cel-spec.
   116    Structure is [documented below](#nested_custom).
   117  
   118  
   119  <a name="nested_basic"></a>The `basic` block supports:
   120  
   121  * `combining_function` -
   122    (Optional)
   123    How the conditions list should be combined to determine if a request
   124    is granted this AccessLevel. If AND is used, each Condition in
   125    conditions must be satisfied for the AccessLevel to be applied. If
   126    OR is used, at least one Condition in conditions must be satisfied
   127    for the AccessLevel to be applied.
   128    Default value is `AND`.
   129    Possible values are `AND` and `OR`.
   130  
   131  * `conditions` -
   132    (Required)
   133    A set of requirements for the AccessLevel to be granted.
   134    Structure is [documented below](#nested_conditions).
   135  
   136  
   137  <a name="nested_conditions"></a>The `conditions` block supports:
   138  
   139  * `ip_subnetworks` -
   140    (Optional)
   141    A list of CIDR block IP subnetwork specification. May be IPv4
   142    or IPv6.
   143    Note that for a CIDR IP address block, the specified IP address
   144    portion must be properly truncated (i.e. all the host bits must
   145    be zero) or the input is considered malformed. For example,
   146    "192.0.2.0/24" is accepted but "192.0.2.1/24" is not. Similarly,
   147    for IPv6, "2001:db8::/32" is accepted whereas "2001:db8::1/32"
   148    is not. The originating IP of a request must be in one of the
   149    listed subnets in order for this Condition to be true.
   150    If empty, all IP addresses are allowed.
   151  
   152  * `required_access_levels` -
   153    (Optional)
   154    A list of other access levels defined in the same Policy,
   155    referenced by resource name. Referencing an AccessLevel which
   156    does not exist is an error. All access levels listed must be
   157    granted for the Condition to be true.
   158    Format: accessPolicies/{policy_id}/accessLevels/{short_name}
   159  
   160  * `members` -
   161    (Optional)
   162    An allowed list of members (users, service accounts).
   163    Using groups is not supported yet.
   164    The signed-in user originating the request must be a part of one
   165    of the provided members. If not specified, a request may come
   166    from any user (logged in/not logged in, not present in any
   167    groups, etc.).
   168    Formats: `user:{emailid}`, `serviceAccount:{emailid}`
   169  
   170  * `negate` -
   171    (Optional)
   172    Whether to negate the Condition. If true, the Condition becomes
   173    a NAND over its non-empty fields, each field must be false for
   174    the Condition overall to be satisfied. Defaults to false.
   175  
   176  * `device_policy` -
   177    (Optional)
   178    Device specific restrictions, all restrictions must hold for
   179    the Condition to be true. If not specified, all devices are
   180    allowed.
   181    Structure is [documented below](#nested_device_policy).
   182  
   183  * `regions` -
   184    (Optional)
   185    The request must originate from one of the provided
   186    countries/regions.
   187    Format: A valid ISO 3166-1 alpha-2 code.
   188  
   189  
   190  <a name="nested_device_policy"></a>The `device_policy` block supports:
   191  
   192  * `require_screen_lock` -
   193    (Optional)
   194    Whether or not screenlock is required for the DevicePolicy
   195    to be true. Defaults to false.
   196  
   197  * `allowed_encryption_statuses` -
   198    (Optional)
   199    A list of allowed encryptions statuses.
   200    An empty list allows all statuses.
   201    Each value may be one of `ENCRYPTION_UNSPECIFIED`, `ENCRYPTION_UNSUPPORTED`, `UNENCRYPTED`, and `ENCRYPTED`.
   202  
   203  * `allowed_device_management_levels` -
   204    (Optional)
   205    A list of allowed device management levels.
   206    An empty list allows all management levels.
   207    Each value may be one of `MANAGEMENT_UNSPECIFIED`, `NONE`, `BASIC`, and `COMPLETE`.
   208  
   209  * `os_constraints` -
   210    (Optional)
   211    A list of allowed OS versions.
   212    An empty list allows all types and all versions.
   213    Structure is [documented below](#nested_os_constraints).
   214  
   215  * `require_admin_approval` -
   216    (Optional)
   217    Whether the device needs to be approved by the customer admin.
   218  
   219  * `require_corp_owned` -
   220    (Optional)
   221    Whether the device needs to be corp owned.
   222  
   223  
   224  <a name="nested_os_constraints"></a>The `os_constraints` block supports:
   225  
   226  * `minimum_version` -
   227    (Optional)
   228    The minimum allowed OS version. If not set, any version
   229    of this OS satisfies the constraint.
   230    Format: "major.minor.patch" such as "10.5.301", "9.2.1".
   231  
   232  * `require_verified_chrome_os` -
   233    (Optional)
   234    If you specify DESKTOP_CHROME_OS for osType, you can optionally include requireVerifiedChromeOs to require Chrome Verified Access.
   235  
   236  * `os_type` -
   237    (Required)
   238    The operating system type of the device.
   239    Possible values are `OS_UNSPECIFIED`, `DESKTOP_MAC`, `DESKTOP_WINDOWS`, `DESKTOP_LINUX`, `DESKTOP_CHROME_OS`, `ANDROID`, and `IOS`.
   240  
   241  <a name="nested_custom"></a>The `custom` block supports:
   242  
   243  * `expr` -
   244    (Required)
   245    Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language.
   246    This page details the objects and attributes that are used to the build the CEL expressions for 
   247    custom access levels - https://cloud.google.com/access-context-manager/docs/custom-access-level-spec.
   248    Structure is [documented below](#nested_expr).
   249  
   250  
   251  <a name="nested_expr"></a>The `expr` block supports:
   252  
   253  * `expression` -
   254    (Required)
   255    Textual representation of an expression in Common Expression Language syntax.
   256  
   257  * `title` -
   258    (Optional)
   259    Title for the expression, i.e. a short string describing its purpose.
   260  
   261  * `description` -
   262    (Optional)
   263    Description of the expression
   264  
   265  * `location` -
   266    (Optional)
   267    String indicating the location of the expression for error reporting, e.g. a file name and a position in the file
   268  
   269  ## Attributes Reference
   270  
   271  In addition to the arguments listed above, the following computed attributes are exported:
   272  
   273  * `id` - an identifier for the resource with format `{{name}}`
   274  
   275  
   276  ## Timeouts
   277  
   278  This resource provides the following
   279  [Timeouts](/docs/configuration/resources.html#timeouts) configuration options:
   280  
   281  - `create` - Default is 20 minutes.
   282  - `update` - Default is 20 minutes.
   283  - `delete` - Default is 20 minutes.
   284  
   285  ## Import
   286  
   287  
   288  AccessLevel can be imported using any of these accepted formats:
   289  
   290  ```
   291  $ terraform import google_access_context_manager_access_level.default {{name}}
   292  ```