...

Text file src/edge-infra.dev/test/fixtures/crds/gcp/iam.cnrm.cloud.google.com_iamworkforcepoolproviders.yaml

Documentation: edge-infra.dev/test/fixtures/crds/gcp

     1---
     2apiVersion: apiextensions.k8s.io/v1
     3kind: CustomResourceDefinition
     4metadata:
     5  annotations:
     6    controller-gen.kubebuilder.io/version: (unknown)
     7  name: iamworkforcepoolproviders.iam.cnrm.cloud.google.com
     8spec:
     9  group: iam.cnrm.cloud.google.com
    10  names:
    11    kind: IAMWorkforcePoolProvider
    12    listKind: IAMWorkforcePoolProviderList
    13    plural: iamworkforcepoolproviders
    14    singular: iamworkforcepoolprovider
    15  scope: Namespaced
    16  versions:
    17  - name: v1beta1
    18    schema:
    19      openAPIV3Schema:
    20        description: IAMWorkforcePoolProvider is the Schema for the iam API
    21        properties:
    22          apiVersion:
    23            description: |-
    24              APIVersion defines the versioned schema of this representation of an object.
    25              Servers should convert recognized schemas to the latest internal value, and
    26              may reject unrecognized values.
    27              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
    28            type: string
    29          kind:
    30            description: |-
    31              Kind is a string value representing the REST resource this object represents.
    32              Servers may infer this from the endpoint the client submits requests to.
    33              Cannot be updated.
    34              In CamelCase.
    35              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
    36            type: string
    37          metadata:
    38            type: object
    39          spec:
    40            properties:
    41              attributeCondition:
    42                description: 'A [Common Expression Language](https://opensource.google/projects/cel)
    43                  expression, in plain text, to restrict what otherwise valid authentication
    44                  credentials issued by the provider should not be accepted. The expression
    45                  must output a boolean representing whether to allow the federation.
    46                  The following keywords may be referenced in the expressions: * `assertion`:
    47                  JSON representing the authentication credential issued by the provider.
    48                  * `google`: The Google attributes mapped from the assertion in the
    49                  `attribute_mappings`. `google.profile_photo` and `google.display_name`
    50                  are not supported. * `attribute`: The custom attributes mapped from
    51                  the assertion in the `attribute_mappings`. The maximum length of
    52                  the attribute condition expression is 4096 characters. If unspecified,
    53                  all valid authentication credentials will be accepted. The following
    54                  example shows how to only allow credentials with a mapped `google.groups`
    55                  value of `admins`: ``` "''admins'' in google.groups" ```'
    56                type: string
    57              attributeMapping:
    58                additionalProperties:
    59                  type: string
    60                description: 'Required. Maps attributes from the authentication credentials
    61                  issued by an external identity provider to Google Cloud attributes,
    62                  such as `subject` and `segment`. Each key must be a string specifying
    63                  the Google Cloud IAM attribute to map to. The following keys are
    64                  supported: * `google.subject`: The principal IAM is authenticating.
    65                  You can reference this value in IAM bindings. This is also the subject
    66                  that appears in Cloud Logging logs. This is a required field and
    67                  the mapped subject cannot exceed 127 bytes. * `google.groups`: Groups
    68                  the authenticating user belongs to. You can grant groups access
    69                  to resources using an IAM `principalSet` binding; access applies
    70                  to all members of the group. * `google.display_name`: The name of
    71                  the authenticated user. This is an optional field and the mapped
    72                  display name cannot exceed 100 bytes. If not set, `google.subject`
    73                  will be displayed instead. This attribute cannot be referenced in
    74                  IAM bindings. * `google.profile_photo`: The URL that specifies the
    75                  authenticated user''s thumbnail photo. This is an optional field.
    76                  When set, the image will be visible as the user''s profile picture.
    77                  If not set, a generic user icon will be displayed instead. This
    78                  attribute cannot be referenced in IAM bindings. You can also provide
    79                  custom attributes by specifying `attribute.{custom_attribute}`,
    80                  where {custom_attribute} is the name of the custom attribute to
    81                  be mapped. You can define a maximum of 50 custom attributes. The
    82                  maximum length of a mapped attribute key is 100 characters, and
    83                  the key may only contain the characters [a-z0-9_]. You can reference
    84                  these attributes in IAM policies to define fine-grained access for
    85                  a workforce pool to Google Cloud resources. For example:'
    86                type: object
    87              description:
    88                description: A user-specified description of the provider. Cannot
    89                  exceed 256 characters.
    90                type: string
    91              disabled:
    92                description: Whether the provider is disabled. You cannot use a disabled
    93                  provider to exchange tokens. However, existing tokens still grant
    94                  access.
    95                type: boolean
    96              displayName:
    97                description: A user-specified display name for the provider. Cannot
    98                  exceed 32 characters.
    99                type: string
   100              location:
   101                description: Immutable. The location for the resource
   102                type: string
   103              oidc:
   104                description: An OpenId Connect 1.0 identity provider configuration.
   105                properties:
   106                  clientId:
   107                    description: Required. The client ID. Must match the audience
   108                      claim of the JWT issued by the identity provider.
   109                    type: string
   110                  issuerUri:
   111                    description: Required. The OIDC issuer URI. Must be a valid URI
   112                      using the 'https' scheme.
   113                    type: string
   114                  webSsoConfig:
   115                    description: Required. Configuration for web single sign-on for
   116                      the OIDC provider. Here, web sign-in refers to console sign-in
   117                      and gcloud sign-in through the browser.
   118                    properties:
   119                      assertionClaimsBehavior:
   120                        description: 'Required. The behavior for how OIDC Claims are
   121                          included in the `assertion` object used for attribute mapping
   122                          and attribute condition. Possible values: ASSERTION_CLAIMS_BEHAVIOR_UNSPECIFIED,
   123                          ONLY_ID_TOKEN_CLAIMS'
   124                        type: string
   125                      responseType:
   126                        description: 'Required. The Response Type to request for in
   127                          the OIDC Authorization Request for web sign-in. Possible
   128                          values: RESPONSE_TYPE_UNSPECIFIED, ID_TOKEN'
   129                        type: string
   130                    required:
   131                    - assertionClaimsBehavior
   132                    - responseType
   133                    type: object
   134                required:
   135                - clientId
   136                - issuerUri
   137                - webSsoConfig
   138                type: object
   139              resourceID:
   140                description: Immutable. Optional. The name of the resource. Used for
   141                  creation and acquisition. When unset, the value of `metadata.name`
   142                  is used as the default.
   143                type: string
   144              saml:
   145                description: A SAML identity provider configuration.
   146                properties:
   147                  idpMetadataXml:
   148                    description: 'Required. SAML Identity provider configuration metadata
   149                      xml doc. The xml document should comply with [SAML 2.0 specification](https://docs.oasis-open.org/security/saml/v2.0/saml-metadata-2.0-os.pdf).
   150                      The max size of the acceptable xml document will be bounded
   151                      to 128k characters. The metadata xml document should satisfy
   152                      the following constraints: 1) Must contain an Identity Provider
   153                      Entity ID. 2) Must contain at least one non-expired signing
   154                      key certificate. 3) For each signing key: a) Valid from should
   155                      be no more than 7 days from now. b) Valid to should be no more
   156                      than 10 years in the future. 4) Up to 3 IdP signing keys are
   157                      allowed in the metadata xml. When updating the provider''s metadata
   158                      xml, at least one non-expired signing key must overlap with
   159                      the existing metadata. This requirement is skipped if there
   160                      are no non-expired signing keys present in the existing metadata.'
   161                    type: string
   162                required:
   163                - idpMetadataXml
   164                type: object
   165              workforcePoolRef:
   166                description: Immutable.
   167                properties:
   168                  external:
   169                    description: The external name of the referenced resource
   170                    type: string
   171                  kind:
   172                    description: Kind of the referent.
   173                    type: string
   174                  name:
   175                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   176                    type: string
   177                  namespace:
   178                    description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   179                    type: string
   180                type: object
   181            required:
   182            - attributeMapping
   183            - location
   184            - workforcePoolRef
   185            type: object
   186          status:
   187            properties:
   188              conditions:
   189                description: |-
   190                  Conditions represent the latest available observations of the
   191                  IAMWorkforcePoolProvider's current state.
   192                items:
   193                  properties:
   194                    lastTransitionTime:
   195                      description: Last time the condition transitioned from one status
   196                        to another.
   197                      type: string
   198                    message:
   199                      description: Human-readable message indicating details about
   200                        last transition.
   201                      type: string
   202                    reason:
   203                      description: |-
   204                        Unique, one-word, CamelCase reason for the condition's last
   205                        transition.
   206                      type: string
   207                    status:
   208                      description: Status is the status of the condition. Can be True,
   209                        False, Unknown.
   210                      type: string
   211                    type:
   212                      description: Type is the type of the condition.
   213                      type: string
   214                  type: object
   215                type: array
   216              observedGeneration:
   217                description: ObservedGeneration is the generation of the resource
   218                  that was most recently observed by the Config Connector controller.
   219                  If this is equal to metadata.generation, then that means that the
   220                  current reported status reflects the most recent desired state of
   221                  the resource.
   222                type: integer
   223              state:
   224                description: 'Output only. The state of the provider. Possible values:
   225                  STATE_UNSPECIFIED, ACTIVE, DELETED'
   226                type: string
   227            type: object
   228        type: object
   229    served: true
   230    storage: true

View as plain text