{
  "name": "googleworkspace",
  "version": "0.7.0",
  "description": "A Pulumi provider dynamically bridged from googleworkspace.",
  "attribution": "This Pulumi package is based on the [`googleworkspace` Terraform Provider](https://github.com/hashicorp/terraform-provider-googleworkspace).",
  "repository": "https://github.com/hashicorp/terraform-provider-googleworkspace",
  "publisher": "hashicorp",
  "meta": {
    "moduleFormat": "(.*)(?:/[^/]*)"
  },
  "language": {
    "csharp": {
      "compatibility": "tfbridge20",
      "liftSingleValueMethodReturns": true,
      "respectSchemaVersion": true
    },
    "go": {
      "importBasePath": "github.com/pulumi/pulumi-terraform-provider/sdks/go/googleworkspace/googleworkspace",
      "rootPackageName": "googleworkspace",
      "liftSingleValueMethodReturns": true,
      "generateExtraInputTypes": true,
      "respectSchemaVersion": true
    },
    "java": {
      "basePackage": "",
      "buildFiles": "",
      "gradleNexusPublishPluginVersion": "",
      "gradleTest": ""
    },
    "nodejs": {
      "packageDescription": "A Pulumi provider dynamically bridged from googleworkspace.",
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/hashicorp/terraform-provider-googleworkspace)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> please consult the source [`terraform-provider-googleworkspace` repo](https://github.com/hashicorp/terraform-provider-googleworkspace/issues).",
      "compatibility": "tfbridge20",
      "disableUnionOutputTypes": true,
      "liftSingleValueMethodReturns": true,
      "respectSchemaVersion": true
    },
    "python": {
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/hashicorp/terraform-provider-googleworkspace)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> please consult the source [`terraform-provider-googleworkspace` repo](https://github.com/hashicorp/terraform-provider-googleworkspace/issues).",
      "compatibility": "tfbridge20",
      "respectSchemaVersion": true,
      "pyproject": {
        "enabled": true
      }
    }
  },
  "config": {
    "variables": {
      "accessToken": {
        "type": "string",
        "description": "A temporary [OAuth 2.0 access token] obtained from the Google Authorization server, i.e. the `Authorization: Bearer`\ntoken used to authenticate HTTP requests to Google Admin SDK APIs. This is an alternative to `credentials`, and ignores\nthe `oauth_scopes` field. If both are specified, `access_token` will be used over the `credentials` field.\n"
      },
      "credentials": {
        "type": "string",
        "description": "Either the path to or the contents of a service account key file in JSON format you can manage key files using the Cloud\nConsole). If not provided, the application default credentials will be used.\n"
      },
      "customerId": {
        "type": "string",
        "description": "The customer id provided with your Google Workspace subscription. It is found in the admin console under Account\nSettings.\n"
      },
      "impersonatedUserEmail": {
        "type": "string",
        "description": "The impersonated user's email with access to the Admin APIs can access the Admin SDK Directory API.\n`impersonated_user_email` is required for all services except group and user management.\n"
      },
      "oauthScopes": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "The list of the scopes required for your application (for a list of possible scopes, see [Authorize\nrequests](https://developers.google.com/admin-sdk/directory/v1/guides/authorizing))\n"
      },
      "serviceAccount": {
        "type": "string",
        "description": "The service account used to create the provided `access_token` if authenticating using the `access_token` method and\nneeding to impersonate a user. This service account will require the GCP role `Service Account Token Creator` if needing\nto impersonate a user.\n"
      }
    }
  },
  "types": {
    "googleworkspace:index/ChromePolicyPolicy:ChromePolicyPolicy": {
      "properties": {
        "schemaName": {
          "type": "string",
          "description": "The full qualified name of the policy schema.\n"
        },
        "schemaValues": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "JSON encoded map that represents key/value pairs that correspond to the given schema.\n"
        }
      },
      "type": "object",
      "required": [
        "schemaName",
        "schemaValues"
      ]
    },
    "googleworkspace:index/GmailSendAsAliasSmtpMsa:GmailSendAsAliasSmtpMsa": {
      "properties": {
        "host": {
          "type": "string",
          "description": "The hostname of the SMTP service.\n"
        },
        "password": {
          "type": "string",
          "description": "The password that will be used for authentication with the SMTP service. This is a write-only field that can be specified in requests to create or update SendAs settings; it is never populated in responses.\n",
          "secret": true
        },
        "port": {
          "type": "number",
          "description": "The port of the SMTP service.\n"
        },
        "securityMode": {
          "type": "string",
          "description": "Defaults to `securityModeUnspecified`. The protocol that will be used to secure communication with the SMTP service.\n"
        },
        "username": {
          "type": "string",
          "description": "The username that will be used for authentication with the SMTP service. This is a write-only field that can be specified in requests to create or update SendAs settings; it is never populated in responses.\n"
        }
      },
      "type": "object",
      "required": [
        "host",
        "port"
      ]
    },
    "googleworkspace:index/GroupMemberTimeouts:GroupMemberTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "googleworkspace:index/GroupMembersMember:GroupMembersMember": {
      "properties": {
        "deliverySettings": {
          "type": "string",
          "description": "Defaults to `ALL_MAIL`. Defines mail delivery preferences of member. Acceptable values are:\n\t- `ALL_MAIL`: All messages, delivered as soon as they arrive. \n\t- `DAILY`: No more than one message a day. \n\t- `DIGEST`: Up to 25 messages bundled into a single message. \n\t- `DISABLED`: Remove subscription. \n\t- `NONE`: No messages.\n"
        },
        "email": {
          "type": "string",
          "description": "The member's email address. A member can be a user or another group. This property isrequired when adding a member to a group. The email must be unique and cannot be an alias of another group. If the email address is changed, the API automatically reflects the email address changes.\n"
        },
        "id": {
          "type": "string",
          "description": "The unique ID of the group member. A member id can be used as a member request URI's memberKey.\n"
        },
        "role": {
          "type": "string",
          "description": "Defaults to `MEMBER`. The member's role in a group. The API returns an error for cycles in group memberships. For example, if group1 is a member of group2, group2 cannot be a member of group1. Acceptable values are: \n\t- `MANAGER`: This role is only available if the Google Groups for Business is enabled using the Admin Console. A `MANAGER` role can do everything done by an `OWNER` role except make a member an `OWNER` or delete the group. A group can have multiple `MANAGER` members. \n\t- `MEMBER`: This role can subscribe to a group, view discussion archives, and view the group's membership list. \n\t- `OWNER`: This role can send messages to the group, add or remove members, change member roles, change group's settings, and delete the group. An OWNER must be a member of the group. A group can have more than one OWNER.\n"
        },
        "status": {
          "type": "string",
          "description": "Status of member.\n"
        },
        "type": {
          "type": "string",
          "description": "Defaults to `USER`. The type of group member. Acceptable values are: \n\t- `CUSTOMER`: The member represents all users in a domain. An email address is not returned and the ID returned is the customer ID. \n\t- `GROUP`: The member is another group. \n\t- `USER`: The member is a user.\n"
        }
      },
      "type": "object",
      "required": [
        "email"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "email",
            "id",
            "status"
          ]
        }
      }
    },
    "googleworkspace:index/GroupSettingsTimeouts:GroupSettingsTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "googleworkspace:index/GroupTimeouts:GroupTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "googleworkspace:index/RolePrivilege:RolePrivilege": {
      "properties": {
        "privilegeName": {
          "type": "string",
          "description": "The name of the privilege.\n"
        },
        "serviceId": {
          "type": "string",
          "description": "The obfuscated ID of the service this privilege is for.\n"
        }
      },
      "type": "object",
      "required": [
        "privilegeName",
        "serviceId"
      ]
    },
    "googleworkspace:index/SchemaField:SchemaField": {
      "properties": {
        "displayName": {
          "type": "string",
          "description": "Display Name of the field.\n"
        },
        "etag": {
          "type": "string",
          "description": "The ETag of the field.\n"
        },
        "fieldId": {
          "type": "string",
          "description": "The unique identifier of the field.\n"
        },
        "fieldName": {
          "type": "string",
          "description": "The name of the field.\n"
        },
        "fieldType": {
          "type": "string",
          "description": "The type of the field. Acceptable values are: \n\t- `BOOL`\n\t- `DATE`\n\t- `DOUBLE`\n\t- `EMAIL`\n\t- `INT64`\n\t- `PHONE`\n\t- `STRING`\n"
        },
        "indexed": {
          "type": "boolean",
          "description": "Defaults to `true`. Boolean specifying whether the field is indexed or not.\n"
        },
        "multiValued": {
          "type": "boolean",
          "description": "Defaults to `false`. A boolean specifying whether this is a multi-valued field or not.\n"
        },
        "numericIndexingSpec": {
          "$ref": "#/types/googleworkspace:index%2FSchemaFieldNumericIndexingSpec:SchemaFieldNumericIndexingSpec",
          "description": "Indexing spec for a numeric field. By default, only exact match queries will be supported for numeric fields. Setting the numericIndexingSpec allows range queries to be supported.\n"
        },
        "readAccessType": {
          "type": "string",
          "description": "Defaults to `ALL_DOMAIN_USERS`. Specifies who can view values of this field. See Retrieve users as a non-administrator for more information. Acceptable values are: \n\t- `ADMINS_AND_SELF`\n\t- `ALL_DOMAIN_USERS`\n\tNote: It may take up to 24 hours for changes to this field to be reflected.\n"
        }
      },
      "type": "object",
      "required": [
        "fieldName",
        "fieldType"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "displayName",
            "etag",
            "fieldId",
            "fieldName",
            "fieldType"
          ]
        }
      }
    },
    "googleworkspace:index/SchemaFieldNumericIndexingSpec:SchemaFieldNumericIndexingSpec": {
      "properties": {
        "maxValue": {
          "type": "number",
          "description": "Maximum value of this field. This is meant to be indicative rather than enforced. Values outside this range will still be indexed, but search may not be as performant.\n"
        },
        "minValue": {
          "type": "number",
          "description": "Minimum value of this field. This is meant to be indicative rather than enforced. Values outside this range will still be indexed, but search may not be as performant.\n"
        }
      },
      "type": "object"
    },
    "googleworkspace:index/SchemaTimeouts:SchemaTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "googleworkspace:index/UserAddress:UserAddress": {
      "properties": {
        "country": {
          "type": "string",
          "description": "Country\n"
        },
        "countryCode": {
          "type": "string",
          "description": "The country code. Uses the ISO 3166-1 standard.\n"
        },
        "customType": {
          "type": "string",
          "description": "If the address type is custom, this property contains the custom value.\n"
        },
        "extendedAddress": {
          "type": "string",
          "description": "For extended addresses, such as an address that includes a sub-region.\n"
        },
        "formatted": {
          "type": "string",
          "description": "A full and unstructured postal address. This is not synced with the structured address fields.\n"
        },
        "locality": {
          "type": "string",
          "description": "The town or city of the address.\n"
        },
        "poBox": {
          "type": "string",
          "description": "The post office box, if present.\n"
        },
        "postalCode": {
          "type": "string",
          "description": "The ZIP or postal code, if applicable.\n"
        },
        "primary": {
          "type": "boolean",
          "description": "If this is the user's primary address. The addresses list may contain only one primary address.\n"
        },
        "region": {
          "type": "string",
          "description": "The abbreviated province or state.\n"
        },
        "sourceIsStructured": {
          "type": "boolean",
          "description": "Indicates if the user-supplied address was formatted. Formatted addresses are not currently supported.\n"
        },
        "streetAddress": {
          "type": "string",
          "description": "The street address, such as 1600 Amphitheatre Parkway. Whitespace within the string is ignored; however, newlines are significant.\n"
        },
        "type": {
          "type": "string",
          "description": "The address type. Acceptable values: `custom`, `home`, `other`, `work`.\n"
        }
      },
      "type": "object",
      "required": [
        "type"
      ]
    },
    "googleworkspace:index/UserCustomSchema:UserCustomSchema": {
      "properties": {
        "schemaName": {
          "type": "string",
          "description": "The name of the schema.\n"
        },
        "schemaValues": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "JSON encoded map that represents key/value pairs that correspond to the given schema.\n"
        }
      },
      "type": "object",
      "required": [
        "schemaName",
        "schemaValues"
      ]
    },
    "googleworkspace:index/UserEmail:UserEmail": {
      "properties": {
        "address": {
          "type": "string",
          "description": "The user's email address. Also serves as the email ID. This value can be the user's primary email address or an alias.\n"
        },
        "customType": {
          "type": "string",
          "description": "If the value of type is custom, this property contains the custom type string.\n"
        },
        "primary": {
          "type": "boolean",
          "description": "Defaults to `false`. Indicates if this is the user's primary email. Only one entry can be marked as primary.\n"
        },
        "type": {
          "type": "string",
          "description": "The type of the email account. Acceptable values: `custom`, `home`, `other`, `work`.\n"
        }
      },
      "type": "object",
      "required": [
        "type"
      ]
    },
    "googleworkspace:index/UserExternalId:UserExternalId": {
      "properties": {
        "customType": {
          "type": "string",
          "description": "If the external ID type is custom, this property contains the custom value and must be set.\n"
        },
        "type": {
          "type": "string",
          "description": "The type of external ID. If set to custom, customType must also be set. Acceptable values: `account`, `custom`, `customer`, `login_id`, `network`, `organization`.\n"
        },
        "value": {
          "type": "string",
          "description": "The value of the ID.\n"
        }
      },
      "type": "object",
      "required": [
        "type",
        "value"
      ]
    },
    "googleworkspace:index/UserIm:UserIm": {
      "properties": {
        "customProtocol": {
          "type": "string",
          "description": "If the protocol value is custom_protocol, this property holds the custom protocol's string.\n"
        },
        "customType": {
          "type": "string",
          "description": "If the IM type is custom, this property holds the custom type string.\n"
        },
        "im": {
          "type": "string",
          "description": "The user's IM network ID.\n"
        },
        "primary": {
          "type": "boolean",
          "description": "If this is the user's primary IM. Only one entry in the IM list can have a value of true.\n"
        },
        "protocol": {
          "type": "string",
          "description": "An IM protocol identifies the IM network. The value can be a custom network or the standard network. Acceptable values: `aim`, `custom_protocol`, `gtalk`, `icq`, `jabber`, `msn`, `net_meeting`, `qq`, `skype`, `yahoo`.\n"
        },
        "type": {
          "type": "string",
          "description": "Acceptable values: `custom`, `home`, `other`, `work`.\n"
        }
      },
      "type": "object",
      "required": [
        "protocol",
        "type"
      ]
    },
    "googleworkspace:index/UserKeyword:UserKeyword": {
      "properties": {
        "customType": {
          "type": "string",
          "description": "Custom Type.\n"
        },
        "type": {
          "type": "string",
          "description": "Each entry can have a type which indicates standard type of that entry. For example, keyword could be of type occupation or outlook. In addition to the standard type, an entry can have a custom type and can give it any name. Such types should have the CUSTOM value as type and also have a customType value. Acceptable values: `custom`, `mission`, `occupation`, `outlook`\n"
        },
        "value": {
          "type": "string",
          "description": "Keyword.\n"
        }
      },
      "type": "object",
      "required": [
        "type",
        "value"
      ]
    },
    "googleworkspace:index/UserLanguage:UserLanguage": {
      "properties": {
        "customLanguage": {
          "type": "string",
          "description": "Other language. A user can provide their own language name if there is no corresponding Google III language code. If this is set, LanguageCode can't be set.\n"
        },
        "languageCode": {
          "type": "string",
          "description": "Defaults to `en`. Language Code. Should be used for storing Google III LanguageCode string representation for language. Illegal values cause SchemaException.\n"
        },
        "preference": {
          "type": "string",
          "description": "Defaults to `preferred`. If present, controls whether the specified languageCode is the user's preferred language. Allowed values are `preferred` and `not_preferred`.\n"
        }
      },
      "type": "object"
    },
    "googleworkspace:index/UserLocation:UserLocation": {
      "properties": {
        "area": {
          "type": "string",
          "description": "Textual location. This is most useful for display purposes to concisely describe the location. For example, Mountain View, CA or Near Seattle.\n"
        },
        "buildingId": {
          "type": "string",
          "description": "Building identifier.\n"
        },
        "customType": {
          "type": "string",
          "description": "If the location type is custom, this property contains the custom value.\n"
        },
        "deskCode": {
          "type": "string",
          "description": "Most specific textual code of individual desk location.\n"
        },
        "floorName": {
          "type": "string",
          "description": "Floor name/number.\n"
        },
        "floorSection": {
          "type": "string",
          "description": "Floor section. More specific location within the floor. For example, if a floor is divided into sections A, B, and C, this field would identify one of those values.\n"
        },
        "type": {
          "type": "string",
          "description": "The location type. Acceptable values: `custom`, `default`, `desk`\n"
        }
      },
      "type": "object",
      "required": [
        "type"
      ]
    },
    "googleworkspace:index/UserName:UserName": {
      "properties": {
        "familyName": {
          "type": "string",
          "description": "The user's last name.\n"
        },
        "fullName": {
          "type": "string",
          "description": "The user's full name formed by concatenating the first and last name values.\n"
        },
        "givenName": {
          "type": "string",
          "description": "The user's first name.\n"
        }
      },
      "type": "object",
      "required": [
        "familyName"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "familyName",
            "fullName"
          ]
        }
      }
    },
    "googleworkspace:index/UserOrganization:UserOrganization": {
      "properties": {
        "costCenter": {
          "type": "string",
          "description": "The cost center of the user's organization.\n"
        },
        "customType": {
          "type": "string",
          "description": "If the value of type is custom, this property contains the custom value.\n"
        },
        "department": {
          "type": "string",
          "description": "Specifies the department within the organization, such as sales or engineering.\n"
        },
        "description": {
          "type": "string",
          "description": "The description of the organization.\n"
        },
        "domain": {
          "type": "string",
          "description": "The domain the organization belongs to.\n"
        },
        "fullTimeEquivalent": {
          "type": "number",
          "description": "The full-time equivalent millipercent within the organization (100000 = 100%)\n"
        },
        "location": {
          "type": "string",
          "description": "The physical location of the organization. This does not need to be a fully qualified address.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the organization.\n"
        },
        "primary": {
          "type": "boolean",
          "description": "Indicates if this is the user's primary organization. A user may only have one primary organization.\n"
        },
        "symbol": {
          "type": "string",
          "description": "Text string symbol of the organization. For example, the text symbol for Google is GOOG.\n"
        },
        "title": {
          "type": "string",
          "description": "The user's title within the organization. For example, member or engineer.\n"
        },
        "type": {
          "type": "string",
          "description": "The type of organization. Acceptable values: `domain_only`, `school`, `unknown`, `work`.\n"
        }
      },
      "type": "object",
      "required": [
        "type"
      ]
    },
    "googleworkspace:index/UserPhone:UserPhone": {
      "properties": {
        "customType": {
          "type": "string",
          "description": "If the phone number type is custom, this property contains the custom value and must be set.\n"
        },
        "primary": {
          "type": "boolean",
          "description": "Indicates if this is the user's primary phone number. A user may only have one primary phone number.\n"
        },
        "type": {
          "type": "string",
          "description": "The type of phone number. Acceptable values: `assistant`, `callback`, `car`, `company_main` , `custom`, `grand_central`, `home`, `home_fax`, `isdn`, `main`, `mobile`, `other`, `other_fax`, `pager`, `radio`, `telex`, `tty_tdd`, `work`, `work_fax`, `work_mobile`, `work_pager`.\n"
        },
        "value": {
          "type": "string",
          "description": "A human-readable phone number. It may be in any telephone number format.\n"
        }
      },
      "type": "object",
      "required": [
        "type",
        "value"
      ]
    },
    "googleworkspace:index/UserPosixAccount:UserPosixAccount": {
      "properties": {
        "accountId": {
          "type": "string",
          "description": "A POSIX account field identifier.\n"
        },
        "gecos": {
          "type": "string",
          "description": "The GECOS (user information) for this account.\n"
        },
        "gid": {
          "type": "string",
          "description": "The default group ID.\n"
        },
        "homeDirectory": {
          "type": "string",
          "description": "The path to the home directory for this account.\n"
        },
        "operatingSystemType": {
          "type": "string",
          "description": "The operating system type for this account. Acceptable values: `linux`, `unspecified`, `windows`.\n"
        },
        "primary": {
          "type": "boolean",
          "description": "If this is user's primary account within the SystemId.\n"
        },
        "shell": {
          "type": "string",
          "description": "The path to the login shell for this account.\n"
        },
        "systemId": {
          "type": "string",
          "description": "System identifier for which account Username or Uid apply to.\n"
        },
        "uid": {
          "type": "string",
          "description": "The POSIX compliant user ID.\n"
        },
        "username": {
          "type": "string",
          "description": "The username of the account.\n"
        }
      },
      "type": "object"
    },
    "googleworkspace:index/UserRelation:UserRelation": {
      "properties": {
        "customType": {
          "type": "string",
          "description": "If the value of type is custom, this property contains the custom type string.\n"
        },
        "type": {
          "type": "string",
          "description": "The type of relation. Acceptable values: `admin_assistant`, `assistant`, `brother`, `child`, `custom`, `domestic_partner`, `dotted_line_manager`, `exec_assistant`, `father`, `friend`, `manager`, `mother`, `parent`, `partner`, `referred_by`, `relative`, `sister`, `spouse`.\n"
        },
        "value": {
          "type": "string",
          "description": "The name of the person the user is related to.\n"
        }
      },
      "type": "object",
      "required": [
        "type",
        "value"
      ]
    },
    "googleworkspace:index/UserSshPublicKey:UserSshPublicKey": {
      "properties": {
        "expirationTimeUsec": {
          "type": "string",
          "description": "An expiration time in microseconds since epoch.\n"
        },
        "fingerprint": {
          "type": "string",
          "description": "A SHA-256 fingerprint of the SSH public key.\n"
        },
        "key": {
          "type": "string",
          "description": "An SSH public key.\n"
        }
      },
      "type": "object",
      "required": [
        "key"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "fingerprint",
            "key"
          ]
        }
      }
    },
    "googleworkspace:index/UserTimeouts:UserTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "googleworkspace:index/UserWebsite:UserWebsite": {
      "properties": {
        "customType": {
          "type": "string",
          "description": "The custom type. Only used if the type is custom.\n"
        },
        "primary": {
          "type": "boolean",
          "description": "If this is user's primary website or not.\n"
        },
        "type": {
          "type": "string",
          "description": "The type or purpose of the website. For example, a website could be labeled as home or blog. Alternatively, an entry can have a custom type Custom types must have a customType value. Acceptable values: `app_install_page`, `blog`, `custom`, `ftp` , `home`, `home_page`, `other`, `profile`, `reservations`, `resume`, `work`.\n"
        },
        "value": {
          "type": "string",
          "description": "The URL of the website.\n"
        }
      },
      "type": "object",
      "required": [
        "type",
        "value"
      ]
    },
    "googleworkspace:index/getChromePolicySchemaAdditionalTargetKeyName:getChromePolicySchemaAdditionalTargetKeyName": {
      "properties": {
        "key": {
          "type": "string"
        },
        "keyDescription": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "key",
        "keyDescription"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getChromePolicySchemaDefinition:getChromePolicySchemaDefinition": {
      "properties": {
        "enumTypes": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FgetChromePolicySchemaDefinitionEnumType:getChromePolicySchemaDefinitionEnumType"
          }
        },
        "messageType": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "package": {
          "type": "string"
        },
        "syntax": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "enumTypes",
        "messageType",
        "name",
        "package",
        "syntax"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getChromePolicySchemaDefinitionEnumType:getChromePolicySchemaDefinitionEnumType": {
      "properties": {
        "name": {
          "type": "string"
        },
        "values": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FgetChromePolicySchemaDefinitionEnumTypeValue:getChromePolicySchemaDefinitionEnumTypeValue"
          }
        }
      },
      "type": "object",
      "required": [
        "name",
        "values"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getChromePolicySchemaDefinitionEnumTypeValue:getChromePolicySchemaDefinitionEnumTypeValue": {
      "properties": {
        "name": {
          "type": "string"
        },
        "number": {
          "type": "number"
        }
      },
      "type": "object",
      "required": [
        "name",
        "number"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getChromePolicySchemaNotice:getChromePolicySchemaNotice": {
      "properties": {
        "acknowledgementRequired": {
          "type": "boolean"
        },
        "field": {
          "type": "string"
        },
        "noticeMessage": {
          "type": "string"
        },
        "noticeValue": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "acknowledgementRequired",
        "field",
        "noticeMessage",
        "noticeValue"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getGroupMembersMember:getGroupMembersMember": {
      "properties": {
        "deliverySettings": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "role": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "deliverySettings",
        "email",
        "id",
        "role",
        "status",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getGroupsGroup:getGroupsGroup": {
      "properties": {
        "adminCreated": {
          "type": "boolean",
          "description": "Value is true if this group was created by an administrator rather than a user.\n"
        },
        "aliases": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "asps.list of group's email addresses.\n"
        },
        "description": {
          "type": "string",
          "description": "An extended description to help users determine the purpose of a group.For example, you can include information about who should join the group,the types of messages to send to the group, links to FAQs about the group, or related groups.\n"
        },
        "directMembersCount": {
          "type": "number",
          "description": "The number of users that are direct members of the group.If a group is a member (child) of this group (the parent),members of the child group are not counted in the directMembersCount property of the parent group.\n"
        },
        "email": {
          "type": "string"
        },
        "etag": {
          "type": "string",
          "description": "ETag of the resource.\n"
        },
        "id": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "name": {
          "type": "string",
          "description": "The group's display name.\n"
        },
        "nonEditableAliases": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "asps.list of the group's non-editable alias email addresses that are outside of the account's primary domain or subdomains. These are functioning email addresses used by the group.\n"
        }
      },
      "type": "object",
      "required": [
        "adminCreated",
        "aliases",
        "description",
        "directMembersCount",
        "email",
        "etag",
        "id",
        "name",
        "nonEditableAliases"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getPrivilegesItem:getPrivilegesItem": {
      "properties": {
        "etag": {
          "type": "string"
        },
        "isOrgUnitScopable": {
          "type": "boolean"
        },
        "privilegeName": {
          "type": "string"
        },
        "serviceId": {
          "type": "string"
        },
        "serviceName": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "etag",
        "isOrgUnitScopable",
        "privilegeName",
        "serviceId",
        "serviceName"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getRolePrivilege:getRolePrivilege": {
      "properties": {
        "privilegeName": {
          "type": "string"
        },
        "serviceId": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "privilegeName",
        "serviceId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getSchemaField:getSchemaField": {
      "properties": {
        "displayName": {
          "type": "string"
        },
        "etag": {
          "type": "string"
        },
        "fieldId": {
          "type": "string"
        },
        "fieldName": {
          "type": "string"
        },
        "fieldType": {
          "type": "string"
        },
        "indexed": {
          "type": "boolean"
        },
        "multiValued": {
          "type": "boolean"
        },
        "numericIndexingSpecs": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FgetSchemaFieldNumericIndexingSpec:getSchemaFieldNumericIndexingSpec"
          }
        },
        "readAccessType": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "displayName",
        "etag",
        "fieldId",
        "fieldName",
        "fieldType",
        "indexed",
        "multiValued",
        "numericIndexingSpecs",
        "readAccessType"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getSchemaFieldNumericIndexingSpec:getSchemaFieldNumericIndexingSpec": {
      "properties": {
        "maxValue": {
          "type": "number"
        },
        "minValue": {
          "type": "number"
        }
      },
      "type": "object",
      "required": [
        "maxValue",
        "minValue"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUserAddress:getUserAddress": {
      "properties": {
        "country": {
          "type": "string"
        },
        "countryCode": {
          "type": "string"
        },
        "customType": {
          "type": "string"
        },
        "extendedAddress": {
          "type": "string"
        },
        "formatted": {
          "type": "string"
        },
        "locality": {
          "type": "string"
        },
        "poBox": {
          "type": "string"
        },
        "postalCode": {
          "type": "string"
        },
        "primary": {
          "type": "boolean"
        },
        "region": {
          "type": "string"
        },
        "sourceIsStructured": {
          "type": "boolean"
        },
        "streetAddress": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "country",
        "countryCode",
        "customType",
        "extendedAddress",
        "formatted",
        "locality",
        "poBox",
        "postalCode",
        "primary",
        "region",
        "sourceIsStructured",
        "streetAddress",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUserCustomSchema:getUserCustomSchema": {
      "properties": {
        "schemaName": {
          "type": "string"
        },
        "schemaValues": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      },
      "type": "object",
      "required": [
        "schemaName",
        "schemaValues"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUserEmail:getUserEmail": {
      "properties": {
        "address": {
          "type": "string"
        },
        "customType": {
          "type": "string"
        },
        "primary": {
          "type": "boolean"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "address",
        "customType",
        "primary",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUserExternalId:getUserExternalId": {
      "properties": {
        "customType": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "customType",
        "type",
        "value"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUserIm:getUserIm": {
      "properties": {
        "customProtocol": {
          "type": "string"
        },
        "customType": {
          "type": "string"
        },
        "im": {
          "type": "string"
        },
        "primary": {
          "type": "boolean"
        },
        "protocol": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "customProtocol",
        "customType",
        "im",
        "primary",
        "protocol",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUserKeyword:getUserKeyword": {
      "properties": {
        "customType": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "customType",
        "type",
        "value"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUserLanguage:getUserLanguage": {
      "properties": {
        "customLanguage": {
          "type": "string"
        },
        "languageCode": {
          "type": "string"
        },
        "preference": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "customLanguage",
        "languageCode",
        "preference"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUserLocation:getUserLocation": {
      "properties": {
        "area": {
          "type": "string"
        },
        "buildingId": {
          "type": "string"
        },
        "customType": {
          "type": "string"
        },
        "deskCode": {
          "type": "string"
        },
        "floorName": {
          "type": "string"
        },
        "floorSection": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "area",
        "buildingId",
        "customType",
        "deskCode",
        "floorName",
        "floorSection",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUserName:getUserName": {
      "properties": {
        "familyName": {
          "type": "string"
        },
        "fullName": {
          "type": "string"
        },
        "givenName": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "familyName",
        "fullName",
        "givenName"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUserOrganization:getUserOrganization": {
      "properties": {
        "costCenter": {
          "type": "string"
        },
        "customType": {
          "type": "string"
        },
        "department": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "domain": {
          "type": "string"
        },
        "fullTimeEquivalent": {
          "type": "number"
        },
        "location": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "primary": {
          "type": "boolean"
        },
        "symbol": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "costCenter",
        "customType",
        "department",
        "description",
        "domain",
        "fullTimeEquivalent",
        "location",
        "name",
        "primary",
        "symbol",
        "title",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUserPhone:getUserPhone": {
      "properties": {
        "customType": {
          "type": "string"
        },
        "primary": {
          "type": "boolean"
        },
        "type": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "customType",
        "primary",
        "type",
        "value"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUserPosixAccount:getUserPosixAccount": {
      "properties": {
        "accountId": {
          "type": "string"
        },
        "gecos": {
          "type": "string"
        },
        "gid": {
          "type": "string"
        },
        "homeDirectory": {
          "type": "string"
        },
        "operatingSystemType": {
          "type": "string"
        },
        "primary": {
          "type": "boolean"
        },
        "shell": {
          "type": "string"
        },
        "systemId": {
          "type": "string"
        },
        "uid": {
          "type": "string"
        },
        "username": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "accountId",
        "gecos",
        "gid",
        "homeDirectory",
        "operatingSystemType",
        "primary",
        "shell",
        "systemId",
        "uid",
        "username"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUserRelation:getUserRelation": {
      "properties": {
        "customType": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "customType",
        "type",
        "value"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUserSshPublicKey:getUserSshPublicKey": {
      "properties": {
        "expirationTimeUsec": {
          "type": "string"
        },
        "fingerprint": {
          "type": "string"
        },
        "key": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "expirationTimeUsec",
        "fingerprint",
        "key"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUserWebsite:getUserWebsite": {
      "properties": {
        "customType": {
          "type": "string"
        },
        "primary": {
          "type": "boolean"
        },
        "type": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "customType",
        "primary",
        "type",
        "value"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUsersUser:getUsersUser": {
      "properties": {
        "addresses": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FgetUsersUserAddress:getUsersUserAddress"
          }
        },
        "agreedToTerms": {
          "type": "boolean"
        },
        "aliases": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "archived": {
          "type": "boolean"
        },
        "changePasswordAtNextLogin": {
          "type": "boolean"
        },
        "creationTime": {
          "type": "string"
        },
        "customSchemas": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FgetUsersUserCustomSchema:getUsersUserCustomSchema"
          }
        },
        "customerId": {
          "type": "string"
        },
        "deletionTime": {
          "type": "string"
        },
        "emails": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FgetUsersUserEmail:getUsersUserEmail"
          }
        },
        "etag": {
          "type": "string"
        },
        "externalIds": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FgetUsersUserExternalId:getUsersUserExternalId"
          }
        },
        "hashFunction": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "ims": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FgetUsersUserIm:getUsersUserIm"
          }
        },
        "includeInGlobalAddressList": {
          "type": "boolean"
        },
        "ipAllowlist": {
          "type": "boolean"
        },
        "isAdmin": {
          "type": "boolean"
        },
        "isDelegatedAdmin": {
          "type": "boolean"
        },
        "isEnforcedIn2StepVerification": {
          "type": "boolean"
        },
        "isEnrolledIn2StepVerification": {
          "type": "boolean"
        },
        "isMailboxSetup": {
          "type": "boolean"
        },
        "keywords": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FgetUsersUserKeyword:getUsersUserKeyword"
          }
        },
        "languages": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FgetUsersUserLanguage:getUsersUserLanguage"
          }
        },
        "lastLoginTime": {
          "type": "string"
        },
        "locations": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FgetUsersUserLocation:getUsersUserLocation"
          }
        },
        "names": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FgetUsersUserName:getUsersUserName"
          }
        },
        "nonEditableAliases": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "orgUnitPath": {
          "type": "string"
        },
        "organizations": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FgetUsersUserOrganization:getUsersUserOrganization"
          }
        },
        "password": {
          "type": "string"
        },
        "phones": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FgetUsersUserPhone:getUsersUserPhone"
          }
        },
        "posixAccounts": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FgetUsersUserPosixAccount:getUsersUserPosixAccount"
          }
        },
        "primaryEmail": {
          "type": "string"
        },
        "recoveryEmail": {
          "type": "string"
        },
        "recoveryPhone": {
          "type": "string"
        },
        "relations": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FgetUsersUserRelation:getUsersUserRelation"
          }
        },
        "sshPublicKeys": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FgetUsersUserSshPublicKey:getUsersUserSshPublicKey"
          }
        },
        "suspended": {
          "type": "boolean"
        },
        "suspensionReason": {
          "type": "string"
        },
        "thumbnailPhotoEtag": {
          "type": "string"
        },
        "thumbnailPhotoUrl": {
          "type": "string"
        },
        "websites": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FgetUsersUserWebsite:getUsersUserWebsite"
          }
        }
      },
      "type": "object",
      "required": [
        "addresses",
        "agreedToTerms",
        "aliases",
        "archived",
        "changePasswordAtNextLogin",
        "creationTime",
        "customSchemas",
        "customerId",
        "deletionTime",
        "emails",
        "etag",
        "externalIds",
        "hashFunction",
        "id",
        "ims",
        "includeInGlobalAddressList",
        "ipAllowlist",
        "isAdmin",
        "isDelegatedAdmin",
        "isEnforcedIn2StepVerification",
        "isEnrolledIn2StepVerification",
        "isMailboxSetup",
        "keywords",
        "languages",
        "lastLoginTime",
        "locations",
        "names",
        "nonEditableAliases",
        "orgUnitPath",
        "organizations",
        "password",
        "phones",
        "posixAccounts",
        "primaryEmail",
        "recoveryEmail",
        "recoveryPhone",
        "relations",
        "sshPublicKeys",
        "suspended",
        "suspensionReason",
        "thumbnailPhotoEtag",
        "thumbnailPhotoUrl",
        "websites"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUsersUserAddress:getUsersUserAddress": {
      "properties": {
        "country": {
          "type": "string"
        },
        "countryCode": {
          "type": "string"
        },
        "customType": {
          "type": "string"
        },
        "extendedAddress": {
          "type": "string"
        },
        "formatted": {
          "type": "string"
        },
        "locality": {
          "type": "string"
        },
        "poBox": {
          "type": "string"
        },
        "postalCode": {
          "type": "string"
        },
        "primary": {
          "type": "boolean"
        },
        "region": {
          "type": "string"
        },
        "sourceIsStructured": {
          "type": "boolean"
        },
        "streetAddress": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "country",
        "countryCode",
        "customType",
        "extendedAddress",
        "formatted",
        "locality",
        "poBox",
        "postalCode",
        "primary",
        "region",
        "sourceIsStructured",
        "streetAddress",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUsersUserCustomSchema:getUsersUserCustomSchema": {
      "properties": {
        "schemaName": {
          "type": "string"
        },
        "schemaValues": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      },
      "type": "object",
      "required": [
        "schemaName",
        "schemaValues"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUsersUserEmail:getUsersUserEmail": {
      "properties": {
        "address": {
          "type": "string"
        },
        "customType": {
          "type": "string"
        },
        "primary": {
          "type": "boolean"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "address",
        "customType",
        "primary",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUsersUserExternalId:getUsersUserExternalId": {
      "properties": {
        "customType": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "customType",
        "type",
        "value"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUsersUserIm:getUsersUserIm": {
      "properties": {
        "customProtocol": {
          "type": "string"
        },
        "customType": {
          "type": "string"
        },
        "im": {
          "type": "string"
        },
        "primary": {
          "type": "boolean"
        },
        "protocol": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "customProtocol",
        "customType",
        "im",
        "primary",
        "protocol",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUsersUserKeyword:getUsersUserKeyword": {
      "properties": {
        "customType": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "customType",
        "type",
        "value"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUsersUserLanguage:getUsersUserLanguage": {
      "properties": {
        "customLanguage": {
          "type": "string"
        },
        "languageCode": {
          "type": "string"
        },
        "preference": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "customLanguage",
        "languageCode",
        "preference"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUsersUserLocation:getUsersUserLocation": {
      "properties": {
        "area": {
          "type": "string"
        },
        "buildingId": {
          "type": "string"
        },
        "customType": {
          "type": "string"
        },
        "deskCode": {
          "type": "string"
        },
        "floorName": {
          "type": "string"
        },
        "floorSection": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "area",
        "buildingId",
        "customType",
        "deskCode",
        "floorName",
        "floorSection",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUsersUserName:getUsersUserName": {
      "properties": {
        "familyName": {
          "type": "string"
        },
        "fullName": {
          "type": "string"
        },
        "givenName": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "familyName",
        "fullName",
        "givenName"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUsersUserOrganization:getUsersUserOrganization": {
      "properties": {
        "costCenter": {
          "type": "string"
        },
        "customType": {
          "type": "string"
        },
        "department": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "domain": {
          "type": "string"
        },
        "fullTimeEquivalent": {
          "type": "number"
        },
        "location": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "primary": {
          "type": "boolean"
        },
        "symbol": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "costCenter",
        "customType",
        "department",
        "description",
        "domain",
        "fullTimeEquivalent",
        "location",
        "name",
        "primary",
        "symbol",
        "title",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUsersUserPhone:getUsersUserPhone": {
      "properties": {
        "customType": {
          "type": "string"
        },
        "primary": {
          "type": "boolean"
        },
        "type": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "customType",
        "primary",
        "type",
        "value"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUsersUserPosixAccount:getUsersUserPosixAccount": {
      "properties": {
        "accountId": {
          "type": "string"
        },
        "gecos": {
          "type": "string"
        },
        "gid": {
          "type": "string"
        },
        "homeDirectory": {
          "type": "string"
        },
        "operatingSystemType": {
          "type": "string"
        },
        "primary": {
          "type": "boolean"
        },
        "shell": {
          "type": "string"
        },
        "systemId": {
          "type": "string"
        },
        "uid": {
          "type": "string"
        },
        "username": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "accountId",
        "gecos",
        "gid",
        "homeDirectory",
        "operatingSystemType",
        "primary",
        "shell",
        "systemId",
        "uid",
        "username"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUsersUserRelation:getUsersUserRelation": {
      "properties": {
        "customType": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "customType",
        "type",
        "value"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUsersUserSshPublicKey:getUsersUserSshPublicKey": {
      "properties": {
        "expirationTimeUsec": {
          "type": "string"
        },
        "fingerprint": {
          "type": "string"
        },
        "key": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "expirationTimeUsec",
        "fingerprint",
        "key"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "googleworkspace:index/getUsersUserWebsite:getUsersUserWebsite": {
      "properties": {
        "customType": {
          "type": "string"
        },
        "primary": {
          "type": "boolean"
        },
        "type": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "customType",
        "primary",
        "type",
        "value"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    }
  },
  "provider": {
    "description": "The provider type for the googleworkspace package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n",
    "properties": {
      "accessToken": {
        "type": "string",
        "description": "A temporary [OAuth 2.0 access token] obtained from the Google Authorization server, i.e. the `Authorization: Bearer`\ntoken used to authenticate HTTP requests to Google Admin SDK APIs. This is an alternative to `credentials`, and ignores\nthe `oauth_scopes` field. If both are specified, `access_token` will be used over the `credentials` field.\n"
      },
      "credentials": {
        "type": "string",
        "description": "Either the path to or the contents of a service account key file in JSON format you can manage key files using the Cloud\nConsole). If not provided, the application default credentials will be used.\n"
      },
      "customerId": {
        "type": "string",
        "description": "The customer id provided with your Google Workspace subscription. It is found in the admin console under Account\nSettings.\n"
      },
      "impersonatedUserEmail": {
        "type": "string",
        "description": "The impersonated user's email with access to the Admin APIs can access the Admin SDK Directory API.\n`impersonated_user_email` is required for all services except group and user management.\n"
      },
      "serviceAccount": {
        "type": "string",
        "description": "The service account used to create the provided `access_token` if authenticating using the `access_token` method and\nneeding to impersonate a user. This service account will require the GCP role `Service Account Token Creator` if needing\nto impersonate a user.\n"
      }
    },
    "type": "object",
    "inputProperties": {
      "accessToken": {
        "type": "string",
        "description": "A temporary [OAuth 2.0 access token] obtained from the Google Authorization server, i.e. the `Authorization: Bearer`\ntoken used to authenticate HTTP requests to Google Admin SDK APIs. This is an alternative to `credentials`, and ignores\nthe `oauth_scopes` field. If both are specified, `access_token` will be used over the `credentials` field.\n"
      },
      "credentials": {
        "type": "string",
        "description": "Either the path to or the contents of a service account key file in JSON format you can manage key files using the Cloud\nConsole). If not provided, the application default credentials will be used.\n"
      },
      "customerId": {
        "type": "string",
        "description": "The customer id provided with your Google Workspace subscription. It is found in the admin console under Account\nSettings.\n"
      },
      "impersonatedUserEmail": {
        "type": "string",
        "description": "The impersonated user's email with access to the Admin APIs can access the Admin SDK Directory API.\n`impersonated_user_email` is required for all services except group and user management.\n"
      },
      "oauthScopes": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "The list of the scopes required for your application (for a list of possible scopes, see [Authorize\nrequests](https://developers.google.com/admin-sdk/directory/v1/guides/authorizing))\n"
      },
      "serviceAccount": {
        "type": "string",
        "description": "The service account used to create the provided `access_token` if authenticating using the `access_token` method and\nneeding to impersonate a user. This service account will require the GCP role `Service Account Token Creator` if needing\nto impersonate a user.\n"
      }
    }
  },
  "resources": {
    "googleworkspace:index/chromePolicy:ChromePolicy": {
      "description": "## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as googleworkspace from \"@pulumi/googleworkspace\";\n\nconst exampleOrgUnit = new googleworkspace.OrgUnit(\"exampleOrgUnit\", {parentOrgUnitPath: \"/\"});\nconst exampleChromePolicy = new googleworkspace.ChromePolicy(\"exampleChromePolicy\", {\n    orgUnitId: googleworkspace_org_unit.test.id,\n    policies: [{\n        schemaName: \"chrome.users.MaxConnectionsPerProxy\",\n        schemaValues: {\n            maxConnectionsPerProxy: JSON.stringify(34),\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_googleworkspace as googleworkspace\n\nexample_org_unit = googleworkspace.OrgUnit(\"exampleOrgUnit\", parent_org_unit_path=\"/\")\nexample_chrome_policy = googleworkspace.ChromePolicy(\"exampleChromePolicy\",\n    org_unit_id=googleworkspace_org_unit[\"test\"][\"id\"],\n    policies=[{\n        \"schema_name\": \"chrome.users.MaxConnectionsPerProxy\",\n        \"schema_values\": {\n            \"maxConnectionsPerProxy\": json.dumps(34),\n        },\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Googleworkspace = Pulumi.Googleworkspace;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleOrgUnit = new Googleworkspace.OrgUnit(\"exampleOrgUnit\", new()\n    {\n        ParentOrgUnitPath = \"/\",\n    });\n\n    var exampleChromePolicy = new Googleworkspace.ChromePolicy(\"exampleChromePolicy\", new()\n    {\n        OrgUnitId = googleworkspace_org_unit.Test.Id,\n        Policies = new[]\n        {\n            new Googleworkspace.Inputs.ChromePolicyPolicyArgs\n            {\n                SchemaName = \"chrome.users.MaxConnectionsPerProxy\",\n                SchemaValues = \n                {\n                    { \"maxConnectionsPerProxy\", JsonSerializer.Serialize(34) },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/googleworkspace/googleworkspace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := googleworkspace.NewOrgUnit(ctx, \"exampleOrgUnit\", &googleworkspace.OrgUnitArgs{\n\t\t\tParentOrgUnitPath: pulumi.String(\"/\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(34)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = googleworkspace.NewChromePolicy(ctx, \"exampleChromePolicy\", &googleworkspace.ChromePolicyArgs{\n\t\t\tOrgUnitId: pulumi.Any(googleworkspace_org_unit.Test.Id),\n\t\t\tPolicies: googleworkspace.ChromePolicyPolicyArray{\n\t\t\t\t&googleworkspace.ChromePolicyPolicyArgs{\n\t\t\t\t\tSchemaName: pulumi.String(\"chrome.users.MaxConnectionsPerProxy\"),\n\t\t\t\t\tSchemaValues: pulumi.StringMap{\n\t\t\t\t\t\t\"maxConnectionsPerProxy\": pulumi.String(json0),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.googleworkspace.OrgUnit;\nimport com.pulumi.googleworkspace.OrgUnitArgs;\nimport com.pulumi.googleworkspace.ChromePolicy;\nimport com.pulumi.googleworkspace.ChromePolicyArgs;\nimport com.pulumi.googleworkspace.inputs.ChromePolicyPolicyArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleOrgUnit = new OrgUnit(\"exampleOrgUnit\", OrgUnitArgs.builder()\n            .parentOrgUnitPath(\"/\")\n            .build());\n\n        var exampleChromePolicy = new ChromePolicy(\"exampleChromePolicy\", ChromePolicyArgs.builder()\n            .orgUnitId(googleworkspace_org_unit.test().id())\n            .policies(ChromePolicyPolicyArgs.builder()\n                .schemaName(\"chrome.users.MaxConnectionsPerProxy\")\n                .schemaValues(Map.of(\"maxConnectionsPerProxy\", serializeJson(\n                    34)))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleOrgUnit:\n    type: googleworkspace:OrgUnit\n    properties:\n      parentOrgUnitPath: /\n  exampleChromePolicy:\n    type: googleworkspace:ChromePolicy\n    properties:\n      orgUnitId: ${googleworkspace_org_unit.test.id}\n      policies:\n        - schemaName: chrome.users.MaxConnectionsPerProxy\n          schemaValues:\n            maxConnectionsPerProxy:\n              fn::toJSON: 34\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "chromePolicyId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "orgUnitId": {
          "type": "string",
          "description": "The target org unit on which this policy is applied.\n"
        },
        "policies": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FChromePolicyPolicy:ChromePolicyPolicy"
          },
          "description": "Policies to set for the org unit\n"
        }
      },
      "type": "object",
      "required": [
        "chromePolicyId",
        "orgUnitId",
        "policies"
      ],
      "inputProperties": {
        "chromePolicyId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "orgUnitId": {
          "type": "string",
          "description": "The target org unit on which this policy is applied.\n"
        },
        "policies": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FChromePolicyPolicy:ChromePolicyPolicy"
          },
          "description": "Policies to set for the org unit\n"
        }
      },
      "requiredInputs": [
        "orgUnitId",
        "policies"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ChromePolicy resources.\n",
        "properties": {
          "chromePolicyId": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "orgUnitId": {
            "type": "string",
            "description": "The target org unit on which this policy is applied.\n"
          },
          "policies": {
            "type": "array",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FChromePolicyPolicy:ChromePolicyPolicy"
            },
            "description": "Policies to set for the org unit\n"
          }
        },
        "type": "object"
      }
    },
    "googleworkspace:index/domain:Domain": {
      "description": "Domain resource manages Google Workspace Domains. Domain resides under the `https://www.googleapis.com/auth/admin.directory.domain` client scope.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as googleworkspace from \"@pulumi/googleworkspace\";\n\nconst example = new googleworkspace.Domain(\"example\", {domainName: \"example.com\"});\n```\n```python\nimport pulumi\nimport pulumi_googleworkspace as googleworkspace\n\nexample = googleworkspace.Domain(\"example\", domain_name=\"example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Googleworkspace = Pulumi.Googleworkspace;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Googleworkspace.Domain(\"example\", new()\n    {\n        DomainName = \"example.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/googleworkspace/googleworkspace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := googleworkspace.NewDomain(ctx, \"example\", &googleworkspace.DomainArgs{\n\t\t\tDomainName: pulumi.String(\"example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.googleworkspace.Domain;\nimport com.pulumi.googleworkspace.DomainArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Domain(\"example\", DomainArgs.builder()\n            .domainName(\"example.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: googleworkspace:Domain\n    properties:\n      domainName: example.com\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n```sh\n$ pulumi import googleworkspace:index/domain:Domain example example.com\n```\n\n",
      "properties": {
        "creationTime": {
          "type": "number",
          "description": "Creation time of the domain. Expressed in Unix time format.\n"
        },
        "domainAliases": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "asps.list of domain alias objects.\n"
        },
        "domainName": {
          "type": "string",
          "description": "The domain name of the customer.\n"
        },
        "etag": {
          "type": "string",
          "description": "ETag of the resource.\n"
        },
        "isPrimary": {
          "type": "boolean",
          "description": "Indicates if the domain is a primary domain.\n"
        },
        "verified": {
          "type": "boolean",
          "description": "Indicates the verification state of a domain.\n"
        }
      },
      "type": "object",
      "required": [
        "creationTime",
        "domainAliases",
        "domainName",
        "etag",
        "isPrimary",
        "verified"
      ],
      "inputProperties": {
        "domainName": {
          "type": "string",
          "description": "The domain name of the customer.\n"
        }
      },
      "requiredInputs": [
        "domainName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Domain resources.\n",
        "properties": {
          "creationTime": {
            "type": "number",
            "description": "Creation time of the domain. Expressed in Unix time format.\n"
          },
          "domainAliases": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "asps.list of domain alias objects.\n"
          },
          "domainName": {
            "type": "string",
            "description": "The domain name of the customer.\n"
          },
          "etag": {
            "type": "string",
            "description": "ETag of the resource.\n"
          },
          "isPrimary": {
            "type": "boolean",
            "description": "Indicates if the domain is a primary domain.\n"
          },
          "verified": {
            "type": "boolean",
            "description": "Indicates the verification state of a domain.\n"
          }
        },
        "type": "object"
      }
    },
    "googleworkspace:index/domainAlias:DomainAlias": {
      "description": "Domain Alias resource manages Google Workspace Domain Aliases. Domain Alias resides under the `https://www.googleapis.com/auth/admin.directory.domain` client scope.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as googleworkspace from \"@pulumi/googleworkspace\";\n\nconst example = new googleworkspace.DomainAlias(\"example\", {\n    domainAliasName: \"alias-example.com\",\n    parentDomainName: \"example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_googleworkspace as googleworkspace\n\nexample = googleworkspace.DomainAlias(\"example\",\n    domain_alias_name=\"alias-example.com\",\n    parent_domain_name=\"example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Googleworkspace = Pulumi.Googleworkspace;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Googleworkspace.DomainAlias(\"example\", new()\n    {\n        DomainAliasName = \"alias-example.com\",\n        ParentDomainName = \"example.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/googleworkspace/googleworkspace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := googleworkspace.NewDomainAlias(ctx, \"example\", &googleworkspace.DomainAliasArgs{\n\t\t\tDomainAliasName:  pulumi.String(\"alias-example.com\"),\n\t\t\tParentDomainName: pulumi.String(\"example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.googleworkspace.DomainAlias;\nimport com.pulumi.googleworkspace.DomainAliasArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new DomainAlias(\"example\", DomainAliasArgs.builder()\n            .domainAliasName(\"alias-example.com\")\n            .parentDomainName(\"example.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: googleworkspace:DomainAlias\n    properties:\n      domainAliasName: alias-example.com\n      parentDomainName: example.com\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n```sh\n$ pulumi import googleworkspace:index/domainAlias:DomainAlias example alias-example.com\n```\n\n",
      "properties": {
        "creationTime": {
          "type": "number",
          "description": "Creation time of the domain alias.\n"
        },
        "domainAliasName": {
          "type": "string",
          "description": "The domain alias name.\n"
        },
        "etag": {
          "type": "string",
          "description": "ETag of the resource.\n"
        },
        "parentDomainName": {
          "type": "string",
          "description": "The parent domain name that the domain alias is associated with. This can either be a primary or secondary domain name within a customer.\n"
        },
        "verified": {
          "type": "boolean",
          "description": "Indicates the verification state of a domain alias.\n"
        }
      },
      "type": "object",
      "required": [
        "creationTime",
        "domainAliasName",
        "etag",
        "verified"
      ],
      "inputProperties": {
        "domainAliasName": {
          "type": "string",
          "description": "The domain alias name.\n"
        },
        "parentDomainName": {
          "type": "string",
          "description": "The parent domain name that the domain alias is associated with. This can either be a primary or secondary domain name within a customer.\n"
        }
      },
      "requiredInputs": [
        "domainAliasName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DomainAlias resources.\n",
        "properties": {
          "creationTime": {
            "type": "number",
            "description": "Creation time of the domain alias.\n"
          },
          "domainAliasName": {
            "type": "string",
            "description": "The domain alias name.\n"
          },
          "etag": {
            "type": "string",
            "description": "ETag of the resource.\n"
          },
          "parentDomainName": {
            "type": "string",
            "description": "The parent domain name that the domain alias is associated with. This can either be a primary or secondary domain name within a customer.\n"
          },
          "verified": {
            "type": "boolean",
            "description": "Indicates the verification state of a domain alias.\n"
          }
        },
        "type": "object"
      }
    },
    "googleworkspace:index/gmailSendAsAlias:GmailSendAsAlias": {
      "description": "## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as googleworkspace from \"@pulumi/googleworkspace\";\n\nconst example = googleworkspace.getUser({\n    primaryEmail: \"user.with.gmail.license@example.com\",\n});\nconst alias = new googleworkspace.User(\"alias\", {\n    primaryEmail: \"alias@example.com\",\n    password: \"34819d7beeabb9260a5c854bc85b3e44\",\n    hashFunction: \"MD5\",\n    name: {\n        familyName: \"Scott\",\n        givenName: \"Michael\",\n    },\n});\nconst test = new googleworkspace.GmailSendAsAlias(\"test\", {\n    primaryEmail: example.then(example => example.primaryEmail),\n    sendAsEmail: alias.primaryEmail,\n});\n```\n```python\nimport pulumi\nimport pulumi_googleworkspace as googleworkspace\n\nexample = googleworkspace.get_user(primary_email=\"user.with.gmail.license@example.com\")\nalias = googleworkspace.User(\"alias\",\n    primary_email=\"alias@example.com\",\n    password=\"34819d7beeabb9260a5c854bc85b3e44\",\n    hash_function=\"MD5\",\n    name={\n        \"family_name\": \"Scott\",\n        \"given_name\": \"Michael\",\n    })\ntest = googleworkspace.GmailSendAsAlias(\"test\",\n    primary_email=example.primary_email,\n    send_as_email=alias.primary_email)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Googleworkspace = Pulumi.Googleworkspace;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = Googleworkspace.GetUser.Invoke(new()\n    {\n        PrimaryEmail = \"user.with.gmail.license@example.com\",\n    });\n\n    var @alias = new Googleworkspace.User(\"alias\", new()\n    {\n        PrimaryEmail = \"alias@example.com\",\n        Password = \"34819d7beeabb9260a5c854bc85b3e44\",\n        HashFunction = \"MD5\",\n        Name = new Googleworkspace.Inputs.UserNameArgs\n        {\n            FamilyName = \"Scott\",\n            GivenName = \"Michael\",\n        },\n    });\n\n    var test = new Googleworkspace.GmailSendAsAlias(\"test\", new()\n    {\n        PrimaryEmail = example.Apply(getUserResult => getUserResult.PrimaryEmail),\n        SendAsEmail = @alias.PrimaryEmail,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/googleworkspace/googleworkspace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := googleworkspace.LookupUser(ctx, &googleworkspace.LookupUserArgs{\n\t\t\tPrimaryEmail: pulumi.StringRef(\"user.with.gmail.license@example.com\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\talias, err := googleworkspace.NewUser(ctx, \"alias\", &googleworkspace.UserArgs{\n\t\t\tPrimaryEmail: pulumi.String(\"alias@example.com\"),\n\t\t\tPassword:     pulumi.String(\"34819d7beeabb9260a5c854bc85b3e44\"),\n\t\t\tHashFunction: pulumi.String(\"MD5\"),\n\t\t\tName: &googleworkspace.UserNameArgs{\n\t\t\t\tFamilyName: pulumi.String(\"Scott\"),\n\t\t\t\tGivenName:  pulumi.String(\"Michael\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = googleworkspace.NewGmailSendAsAlias(ctx, \"test\", &googleworkspace.GmailSendAsAliasArgs{\n\t\t\tPrimaryEmail: pulumi.String(example.PrimaryEmail),\n\t\t\tSendAsEmail:  alias.PrimaryEmail,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.googleworkspace.GoogleworkspaceFunctions;\nimport com.pulumi.googleworkspace.inputs.GetUserArgs;\nimport com.pulumi.googleworkspace.User;\nimport com.pulumi.googleworkspace.UserArgs;\nimport com.pulumi.googleworkspace.inputs.UserNameArgs;\nimport com.pulumi.googleworkspace.GmailSendAsAlias;\nimport com.pulumi.googleworkspace.GmailSendAsAliasArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = GoogleworkspaceFunctions.getUser(GetUserArgs.builder()\n            .primaryEmail(\"user.with.gmail.license@example.com\")\n            .build());\n\n        var alias = new User(\"alias\", UserArgs.builder()\n            .primaryEmail(\"alias@example.com\")\n            .password(\"34819d7beeabb9260a5c854bc85b3e44\")\n            .hashFunction(\"MD5\")\n            .name(UserNameArgs.builder()\n                .familyName(\"Scott\")\n                .givenName(\"Michael\")\n                .build())\n            .build());\n\n        var test = new GmailSendAsAlias(\"test\", GmailSendAsAliasArgs.builder()\n            .primaryEmail(example.applyValue(getUserResult -> getUserResult.primaryEmail()))\n            .sendAsEmail(alias.primaryEmail())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  alias:\n    type: googleworkspace:User\n    properties:\n      primaryEmail: alias@example.com\n      password: 34819d7beeabb9260a5c854bc85b3e44\n      hashFunction: MD5\n      name:\n        familyName: Scott\n        givenName: Michael\n  test:\n    type: googleworkspace:GmailSendAsAlias\n    properties:\n      primaryEmail: ${example.primaryEmail}\n      sendAsEmail: ${alias.primaryEmail}\nvariables:\n  example:\n    fn::invoke:\n      function: googleworkspace:getUser\n      arguments:\n        primaryEmail: user.with.gmail.license@example.com\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n```sh\n$ pulumi import googleworkspace:index/gmailSendAsAlias:GmailSendAsAlias alias user@example.com:alias@anotherexample.com\n```\n\n",
      "properties": {
        "displayName": {
          "type": "string",
          "description": "A name that appears in the 'From:' header for mail sent using this alias. For custom 'from' addresses, when this is empty, Gmail will populate the 'From:' header with the name that is used for the primary address associated with the account. If the admin has disabled the ability for users to update their name format, requests to update this field for the primary login will silently fail.\n"
        },
        "isDefault": {
          "type": "boolean"
        },
        "isPrimary": {
          "type": "boolean",
          "description": "Whether this address is the primary address used to login to the account. Every Gmail account has exactly one primary address, and it cannot be deleted from the collection of send-as aliases.\n"
        },
        "primaryEmail": {
          "type": "string",
          "description": "User's primary email address.\n"
        },
        "replyToAddress": {
          "type": "string",
          "description": "An optional email address that is included in a 'Reply-To:' header for mail sent using this alias. If this is empty, Gmail will not generate a 'Reply-To:' header.\n"
        },
        "sendAsEmail": {
          "type": "string",
          "description": "The email address that appears in the 'From:' header for mail sent using this alias.\n"
        },
        "signature": {
          "type": "string",
          "description": "An optional HTML signature that is included in messages composed with this alias in the Gmail web UI. This signature is added to new emails only.\n"
        },
        "smtpMsa": {
          "$ref": "#/types/googleworkspace:index%2FGmailSendAsAliasSmtpMsa:GmailSendAsAliasSmtpMsa",
          "description": "An optional SMTP service that will be used as an outbound relay for mail sent using this alias. If this is empty, outbound mail will be sent directly from Gmail's servers to the destination SMTP service. This setting only applies to custom 'from' aliases.\n"
        },
        "treatAsAlias": {
          "type": "boolean",
          "description": "Defaults to `true`. Whether Gmail should treat this address as an alias for the user's primary email address. This setting only applies to custom 'from' aliases. See https://support.google.com/a/answer/1710338 for help on making this decision\n"
        },
        "verificationStatus": {
          "type": "string",
          "description": "Indicates whether this address has been verified for use as a send-as alias.\n"
        }
      },
      "type": "object",
      "required": [
        "isPrimary",
        "primaryEmail",
        "sendAsEmail",
        "verificationStatus"
      ],
      "inputProperties": {
        "displayName": {
          "type": "string",
          "description": "A name that appears in the 'From:' header for mail sent using this alias. For custom 'from' addresses, when this is empty, Gmail will populate the 'From:' header with the name that is used for the primary address associated with the account. If the admin has disabled the ability for users to update their name format, requests to update this field for the primary login will silently fail.\n"
        },
        "isDefault": {
          "type": "boolean"
        },
        "primaryEmail": {
          "type": "string",
          "description": "User's primary email address.\n"
        },
        "replyToAddress": {
          "type": "string",
          "description": "An optional email address that is included in a 'Reply-To:' header for mail sent using this alias. If this is empty, Gmail will not generate a 'Reply-To:' header.\n"
        },
        "sendAsEmail": {
          "type": "string",
          "description": "The email address that appears in the 'From:' header for mail sent using this alias.\n"
        },
        "signature": {
          "type": "string",
          "description": "An optional HTML signature that is included in messages composed with this alias in the Gmail web UI. This signature is added to new emails only.\n"
        },
        "smtpMsa": {
          "$ref": "#/types/googleworkspace:index%2FGmailSendAsAliasSmtpMsa:GmailSendAsAliasSmtpMsa",
          "description": "An optional SMTP service that will be used as an outbound relay for mail sent using this alias. If this is empty, outbound mail will be sent directly from Gmail's servers to the destination SMTP service. This setting only applies to custom 'from' aliases.\n"
        },
        "treatAsAlias": {
          "type": "boolean",
          "description": "Defaults to `true`. Whether Gmail should treat this address as an alias for the user's primary email address. This setting only applies to custom 'from' aliases. See https://support.google.com/a/answer/1710338 for help on making this decision\n"
        }
      },
      "requiredInputs": [
        "primaryEmail",
        "sendAsEmail"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering GmailSendAsAlias resources.\n",
        "properties": {
          "displayName": {
            "type": "string",
            "description": "A name that appears in the 'From:' header for mail sent using this alias. For custom 'from' addresses, when this is empty, Gmail will populate the 'From:' header with the name that is used for the primary address associated with the account. If the admin has disabled the ability for users to update their name format, requests to update this field for the primary login will silently fail.\n"
          },
          "isDefault": {
            "type": "boolean"
          },
          "isPrimary": {
            "type": "boolean",
            "description": "Whether this address is the primary address used to login to the account. Every Gmail account has exactly one primary address, and it cannot be deleted from the collection of send-as aliases.\n"
          },
          "primaryEmail": {
            "type": "string",
            "description": "User's primary email address.\n"
          },
          "replyToAddress": {
            "type": "string",
            "description": "An optional email address that is included in a 'Reply-To:' header for mail sent using this alias. If this is empty, Gmail will not generate a 'Reply-To:' header.\n"
          },
          "sendAsEmail": {
            "type": "string",
            "description": "The email address that appears in the 'From:' header for mail sent using this alias.\n"
          },
          "signature": {
            "type": "string",
            "description": "An optional HTML signature that is included in messages composed with this alias in the Gmail web UI. This signature is added to new emails only.\n"
          },
          "smtpMsa": {
            "$ref": "#/types/googleworkspace:index%2FGmailSendAsAliasSmtpMsa:GmailSendAsAliasSmtpMsa",
            "description": "An optional SMTP service that will be used as an outbound relay for mail sent using this alias. If this is empty, outbound mail will be sent directly from Gmail's servers to the destination SMTP service. This setting only applies to custom 'from' aliases.\n"
          },
          "treatAsAlias": {
            "type": "boolean",
            "description": "Defaults to `true`. Whether Gmail should treat this address as an alias for the user's primary email address. This setting only applies to custom 'from' aliases. See https://support.google.com/a/answer/1710338 for help on making this decision\n"
          },
          "verificationStatus": {
            "type": "string",
            "description": "Indicates whether this address has been verified for use as a send-as alias.\n"
          }
        },
        "type": "object"
      }
    },
    "googleworkspace:index/group:Group": {
      "description": "Group resource manages Google Workspace Groups. Group resides under the `https://www.googleapis.com/auth/admin.directory.group` client scope.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.googleworkspace.Group;\nimport com.pulumi.googleworkspace.GroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var sales = new Group(\"sales\", GroupArgs.builder()\n            .email(\"sales@example.com\")\n            .description(\"Sales Group\")\n            .aliases(            \n                \"paper-sales@example.com\",\n                \"sales-dept@example.com\")\n            .timeouts(GroupTimeoutsArgs.builder()\n                .create(\"1m\")\n                .update(\"1m\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  sales:\n    type: googleworkspace:Group\n    properties:\n      email: sales@example.com\n      description: Sales Group\n      aliases:\n        - paper-sales@example.com\n        - sales-dept@example.com\n      timeouts:\n        - create: 1m\n          update: 1m\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n```sh\n$ pulumi import googleworkspace:index/group:Group sales 01abcde23fg4h5i\n```\n\nor with email as id\n\n```sh\n$ pulumi import googleworkspace:index/group:Group sales sales@example.com\n```\n\n",
      "properties": {
        "adminCreated": {
          "type": "boolean",
          "description": "Value is true if this group was created by an administrator rather than a user.\n"
        },
        "aliases": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "asps.list of group's email addresses.\n"
        },
        "description": {
          "type": "string",
          "description": "An extended description to help users determine the purpose of a group.For example, you can include information about who should join the group,the types of messages to send to the group, links to FAQs about the group, or related groups.\n"
        },
        "directMembersCount": {
          "type": "number",
          "description": "The number of users that are direct members of the group.If a group is a member (child) of this group (the parent),members of the child group are not counted in the directMembersCount property of the parent group.\n"
        },
        "email": {
          "type": "string",
          "description": "The group's email address. If your account has multiple domains,select the appropriate domain for the email address. The email must be unique.\n"
        },
        "etag": {
          "type": "string",
          "description": "ETag of the resource.\n"
        },
        "name": {
          "type": "string",
          "description": "The group's display name.\n"
        },
        "nonEditableAliases": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "asps.list of the group's non-editable alias email addresses that are outside of the account's primary domain or subdomains. These are functioning email addresses used by the group.\n"
        },
        "timeouts": {
          "$ref": "#/types/googleworkspace:index%2FGroupTimeouts:GroupTimeouts"
        }
      },
      "type": "object",
      "required": [
        "adminCreated",
        "directMembersCount",
        "email",
        "etag",
        "name",
        "nonEditableAliases"
      ],
      "inputProperties": {
        "aliases": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "asps.list of group's email addresses.\n"
        },
        "description": {
          "type": "string",
          "description": "An extended description to help users determine the purpose of a group.For example, you can include information about who should join the group,the types of messages to send to the group, links to FAQs about the group, or related groups.\n"
        },
        "email": {
          "type": "string",
          "description": "The group's email address. If your account has multiple domains,select the appropriate domain for the email address. The email must be unique.\n"
        },
        "name": {
          "type": "string",
          "description": "The group's display name.\n"
        },
        "timeouts": {
          "$ref": "#/types/googleworkspace:index%2FGroupTimeouts:GroupTimeouts"
        }
      },
      "requiredInputs": [
        "email"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Group resources.\n",
        "properties": {
          "adminCreated": {
            "type": "boolean",
            "description": "Value is true if this group was created by an administrator rather than a user.\n"
          },
          "aliases": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "asps.list of group's email addresses.\n"
          },
          "description": {
            "type": "string",
            "description": "An extended description to help users determine the purpose of a group.For example, you can include information about who should join the group,the types of messages to send to the group, links to FAQs about the group, or related groups.\n"
          },
          "directMembersCount": {
            "type": "number",
            "description": "The number of users that are direct members of the group.If a group is a member (child) of this group (the parent),members of the child group are not counted in the directMembersCount property of the parent group.\n"
          },
          "email": {
            "type": "string",
            "description": "The group's email address. If your account has multiple domains,select the appropriate domain for the email address. The email must be unique.\n"
          },
          "etag": {
            "type": "string",
            "description": "ETag of the resource.\n"
          },
          "name": {
            "type": "string",
            "description": "The group's display name.\n"
          },
          "nonEditableAliases": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "asps.list of the group's non-editable alias email addresses that are outside of the account's primary domain or subdomains. These are functioning email addresses used by the group.\n"
          },
          "timeouts": {
            "$ref": "#/types/googleworkspace:index%2FGroupTimeouts:GroupTimeouts"
          }
        },
        "type": "object"
      }
    },
    "googleworkspace:index/groupMember:GroupMember": {
      "description": "Group Member resource manages Google Workspace Groups Members. Group Member resides under the `https://www.googleapis.com/auth/admin.directory.group` client scope.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as googleworkspace from \"@pulumi/googleworkspace\";\n\nconst sales = new googleworkspace.Group(\"sales\", {email: \"sales@example.com\"});\nconst michael = new googleworkspace.User(\"michael\", {\n    primaryEmail: \"michael.scott@example.com\",\n    password: \"34819d7beeabb9260a5c854bc85b3e44\",\n    hashFunction: \"MD5\",\n    name: {\n        familyName: \"Scott\",\n        givenName: \"Michael\",\n    },\n});\nconst manager = new googleworkspace.GroupMember(\"manager\", {\n    groupId: sales.id,\n    email: michael.primaryEmail,\n    role: \"MANAGER\",\n});\n```\n```python\nimport pulumi\nimport pulumi_googleworkspace as googleworkspace\n\nsales = googleworkspace.Group(\"sales\", email=\"sales@example.com\")\nmichael = googleworkspace.User(\"michael\",\n    primary_email=\"michael.scott@example.com\",\n    password=\"34819d7beeabb9260a5c854bc85b3e44\",\n    hash_function=\"MD5\",\n    name={\n        \"family_name\": \"Scott\",\n        \"given_name\": \"Michael\",\n    })\nmanager = googleworkspace.GroupMember(\"manager\",\n    group_id=sales.id,\n    email=michael.primary_email,\n    role=\"MANAGER\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Googleworkspace = Pulumi.Googleworkspace;\n\nreturn await Deployment.RunAsync(() => \n{\n    var sales = new Googleworkspace.Group(\"sales\", new()\n    {\n        Email = \"sales@example.com\",\n    });\n\n    var michael = new Googleworkspace.User(\"michael\", new()\n    {\n        PrimaryEmail = \"michael.scott@example.com\",\n        Password = \"34819d7beeabb9260a5c854bc85b3e44\",\n        HashFunction = \"MD5\",\n        Name = new Googleworkspace.Inputs.UserNameArgs\n        {\n            FamilyName = \"Scott\",\n            GivenName = \"Michael\",\n        },\n    });\n\n    var manager = new Googleworkspace.GroupMember(\"manager\", new()\n    {\n        GroupId = sales.Id,\n        Email = michael.PrimaryEmail,\n        Role = \"MANAGER\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/googleworkspace/googleworkspace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsales, err := googleworkspace.NewGroup(ctx, \"sales\", &googleworkspace.GroupArgs{\n\t\t\tEmail: pulumi.String(\"sales@example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmichael, err := googleworkspace.NewUser(ctx, \"michael\", &googleworkspace.UserArgs{\n\t\t\tPrimaryEmail: pulumi.String(\"michael.scott@example.com\"),\n\t\t\tPassword:     pulumi.String(\"34819d7beeabb9260a5c854bc85b3e44\"),\n\t\t\tHashFunction: pulumi.String(\"MD5\"),\n\t\t\tName: &googleworkspace.UserNameArgs{\n\t\t\t\tFamilyName: pulumi.String(\"Scott\"),\n\t\t\t\tGivenName:  pulumi.String(\"Michael\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = googleworkspace.NewGroupMember(ctx, \"manager\", &googleworkspace.GroupMemberArgs{\n\t\t\tGroupId: sales.ID(),\n\t\t\tEmail:   michael.PrimaryEmail,\n\t\t\tRole:    pulumi.String(\"MANAGER\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.googleworkspace.Group;\nimport com.pulumi.googleworkspace.GroupArgs;\nimport com.pulumi.googleworkspace.User;\nimport com.pulumi.googleworkspace.UserArgs;\nimport com.pulumi.googleworkspace.inputs.UserNameArgs;\nimport com.pulumi.googleworkspace.GroupMember;\nimport com.pulumi.googleworkspace.GroupMemberArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var sales = new Group(\"sales\", GroupArgs.builder()\n            .email(\"sales@example.com\")\n            .build());\n\n        var michael = new User(\"michael\", UserArgs.builder()\n            .primaryEmail(\"michael.scott@example.com\")\n            .password(\"34819d7beeabb9260a5c854bc85b3e44\")\n            .hashFunction(\"MD5\")\n            .name(UserNameArgs.builder()\n                .familyName(\"Scott\")\n                .givenName(\"Michael\")\n                .build())\n            .build());\n\n        var manager = new GroupMember(\"manager\", GroupMemberArgs.builder()\n            .groupId(sales.id())\n            .email(michael.primaryEmail())\n            .role(\"MANAGER\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  sales:\n    type: googleworkspace:Group\n    properties:\n      email: sales@example.com\n  michael:\n    type: googleworkspace:User\n    properties:\n      primaryEmail: michael.scott@example.com\n      password: 34819d7beeabb9260a5c854bc85b3e44\n      hashFunction: MD5\n      name:\n        familyName: Scott\n        givenName: Michael\n  manager:\n    type: googleworkspace:GroupMember\n    properties:\n      groupId: ${sales.id}\n      email: ${michael.primaryEmail}\n      role: MANAGER\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n```sh\n$ pulumi import googleworkspace:index/groupMember:GroupMember manager groups/01abcde23fg4h5i/members/123456789012345678901\n```\n\n",
      "properties": {
        "deliverySettings": {
          "type": "string",
          "description": "Defaults to `ALL_MAIL`. Defines mail delivery preferences of member. Acceptable values are: - `ALL_MAIL`: All messages,\ndelivered as soon as they arrive. - `DAILY`: No more than one message a day. - `DIGEST`: Up to 25 messages bundled into\na single message. - `DISABLED`: Remove subscription. - `NONE`: No messages.\n"
        },
        "email": {
          "type": "string",
          "description": "The member's email address. A member can be a user or another group. This property is required when adding a member to a\ngroup. The email must be unique and cannot be an alias of another group. If the email address is changed, the API\nautomatically reflects the email address changes.\n"
        },
        "etag": {
          "type": "string",
          "description": "ETag of the resource.\n"
        },
        "groupId": {
          "type": "string",
          "description": "Identifies the group in the API request. The value can be the group's email address, group alias, or the unique group\nID.\n"
        },
        "memberId": {
          "type": "string",
          "description": "The unique ID of the group member. A member id can be used as a member request URI's memberKey.\n"
        },
        "role": {
          "type": "string",
          "description": "Defaults to `MEMBER`. The member's role in a group. The API returns an error for cycles in group memberships. For\nexample, if group1 is a member of group2, group2 cannot be a member of group1. Acceptable values are: - `MANAGER`: This\nrole is only available if the Google Groups for Business is enabled using the Admin Console. A `MANAGER` role can do\neverything done by an `OWNER` role except make a member an `OWNER` or delete the group. A group can have multiple\n`MANAGER` members. - `MEMBER`: This role can subscribe to a group, view discussion archives, and view the group's\nmembership list. - `OWNER`: This role can send messages to the group, add or remove members, change member roles, change\ngroup's settings, and delete the group. An OWNER must be a member of the group. A group can have more than one OWNER.\n"
        },
        "status": {
          "type": "string",
          "description": "Status of member.\n"
        },
        "timeouts": {
          "$ref": "#/types/googleworkspace:index%2FGroupMemberTimeouts:GroupMemberTimeouts"
        },
        "type": {
          "type": "string",
          "description": "Defaults to `USER`. The type of group member. Acceptable values are: - `CUSTOMER`: The member represents all users in a\ndomain. An email address is not returned and the ID returned is the customer ID. - `GROUP`: The member is another group.\n- `USER`: The member is a user.\n"
        }
      },
      "type": "object",
      "required": [
        "email",
        "etag",
        "groupId",
        "memberId",
        "status"
      ],
      "inputProperties": {
        "deliverySettings": {
          "type": "string",
          "description": "Defaults to `ALL_MAIL`. Defines mail delivery preferences of member. Acceptable values are: - `ALL_MAIL`: All messages,\ndelivered as soon as they arrive. - `DAILY`: No more than one message a day. - `DIGEST`: Up to 25 messages bundled into\na single message. - `DISABLED`: Remove subscription. - `NONE`: No messages.\n"
        },
        "email": {
          "type": "string",
          "description": "The member's email address. A member can be a user or another group. This property is required when adding a member to a\ngroup. The email must be unique and cannot be an alias of another group. If the email address is changed, the API\nautomatically reflects the email address changes.\n"
        },
        "groupId": {
          "type": "string",
          "description": "Identifies the group in the API request. The value can be the group's email address, group alias, or the unique group\nID.\n"
        },
        "role": {
          "type": "string",
          "description": "Defaults to `MEMBER`. The member's role in a group. The API returns an error for cycles in group memberships. For\nexample, if group1 is a member of group2, group2 cannot be a member of group1. Acceptable values are: - `MANAGER`: This\nrole is only available if the Google Groups for Business is enabled using the Admin Console. A `MANAGER` role can do\neverything done by an `OWNER` role except make a member an `OWNER` or delete the group. A group can have multiple\n`MANAGER` members. - `MEMBER`: This role can subscribe to a group, view discussion archives, and view the group's\nmembership list. - `OWNER`: This role can send messages to the group, add or remove members, change member roles, change\ngroup's settings, and delete the group. An OWNER must be a member of the group. A group can have more than one OWNER.\n"
        },
        "timeouts": {
          "$ref": "#/types/googleworkspace:index%2FGroupMemberTimeouts:GroupMemberTimeouts"
        },
        "type": {
          "type": "string",
          "description": "Defaults to `USER`. The type of group member. Acceptable values are: - `CUSTOMER`: The member represents all users in a\ndomain. An email address is not returned and the ID returned is the customer ID. - `GROUP`: The member is another group.\n- `USER`: The member is a user.\n"
        }
      },
      "requiredInputs": [
        "email",
        "groupId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering GroupMember resources.\n",
        "properties": {
          "deliverySettings": {
            "type": "string",
            "description": "Defaults to `ALL_MAIL`. Defines mail delivery preferences of member. Acceptable values are: - `ALL_MAIL`: All messages,\ndelivered as soon as they arrive. - `DAILY`: No more than one message a day. - `DIGEST`: Up to 25 messages bundled into\na single message. - `DISABLED`: Remove subscription. - `NONE`: No messages.\n"
          },
          "email": {
            "type": "string",
            "description": "The member's email address. A member can be a user or another group. This property is required when adding a member to a\ngroup. The email must be unique and cannot be an alias of another group. If the email address is changed, the API\nautomatically reflects the email address changes.\n"
          },
          "etag": {
            "type": "string",
            "description": "ETag of the resource.\n"
          },
          "groupId": {
            "type": "string",
            "description": "Identifies the group in the API request. The value can be the group's email address, group alias, or the unique group\nID.\n"
          },
          "memberId": {
            "type": "string",
            "description": "The unique ID of the group member. A member id can be used as a member request URI's memberKey.\n"
          },
          "role": {
            "type": "string",
            "description": "Defaults to `MEMBER`. The member's role in a group. The API returns an error for cycles in group memberships. For\nexample, if group1 is a member of group2, group2 cannot be a member of group1. Acceptable values are: - `MANAGER`: This\nrole is only available if the Google Groups for Business is enabled using the Admin Console. A `MANAGER` role can do\neverything done by an `OWNER` role except make a member an `OWNER` or delete the group. A group can have multiple\n`MANAGER` members. - `MEMBER`: This role can subscribe to a group, view discussion archives, and view the group's\nmembership list. - `OWNER`: This role can send messages to the group, add or remove members, change member roles, change\ngroup's settings, and delete the group. An OWNER must be a member of the group. A group can have more than one OWNER.\n"
          },
          "status": {
            "type": "string",
            "description": "Status of member.\n"
          },
          "timeouts": {
            "$ref": "#/types/googleworkspace:index%2FGroupMemberTimeouts:GroupMemberTimeouts"
          },
          "type": {
            "type": "string",
            "description": "Defaults to `USER`. The type of group member. Acceptable values are: - `CUSTOMER`: The member represents all users in a\ndomain. An email address is not returned and the ID returned is the customer ID. - `GROUP`: The member is another group.\n- `USER`: The member is a user.\n"
          }
        },
        "type": "object"
      }
    },
    "googleworkspace:index/groupMembers:GroupMembers": {
      "description": "Group Members resource manages Google Workspace Groups Members. Group Members resides under the `https://www.googleapis.com/auth/admin.directory.group` client scope.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as googleworkspace from \"@pulumi/googleworkspace\";\n\nconst salesGroup = new googleworkspace.Group(\"salesGroup\", {email: \"sales@example.com\"});\nconst michael = new googleworkspace.User(\"michael\", {\n    primaryEmail: \"michael.scott@example.com\",\n    password: \"34819d7beeabb9260a5c854bc85b3e44\",\n    hashFunction: \"MD5\",\n    name: {\n        familyName: \"Scott\",\n        givenName: \"Michael\",\n    },\n});\nconst frank = new googleworkspace.User(\"frank\", {\n    primaryEmail: \"frank.scott@example.com\",\n    password: \"2095312189753de6ad47dfe20cbe97ec\",\n    hashFunction: \"MD5\",\n    name: {\n        familyName: \"Scott\",\n        givenName: \"Frank\",\n    },\n});\nconst salesGroupMembers = new googleworkspace.GroupMembers(\"salesGroupMembers\", {\n    groupId: salesGroup.id,\n    members: [\n        {\n            email: michael.primaryEmail,\n            role: \"MANAGER\",\n        },\n        {\n            email: frank.primaryEmail,\n            role: \"MEMBER\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_googleworkspace as googleworkspace\n\nsales_group = googleworkspace.Group(\"salesGroup\", email=\"sales@example.com\")\nmichael = googleworkspace.User(\"michael\",\n    primary_email=\"michael.scott@example.com\",\n    password=\"34819d7beeabb9260a5c854bc85b3e44\",\n    hash_function=\"MD5\",\n    name={\n        \"family_name\": \"Scott\",\n        \"given_name\": \"Michael\",\n    })\nfrank = googleworkspace.User(\"frank\",\n    primary_email=\"frank.scott@example.com\",\n    password=\"2095312189753de6ad47dfe20cbe97ec\",\n    hash_function=\"MD5\",\n    name={\n        \"family_name\": \"Scott\",\n        \"given_name\": \"Frank\",\n    })\nsales_group_members = googleworkspace.GroupMembers(\"salesGroupMembers\",\n    group_id=sales_group.id,\n    members=[\n        {\n            \"email\": michael.primary_email,\n            \"role\": \"MANAGER\",\n        },\n        {\n            \"email\": frank.primary_email,\n            \"role\": \"MEMBER\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Googleworkspace = Pulumi.Googleworkspace;\n\nreturn await Deployment.RunAsync(() => \n{\n    var salesGroup = new Googleworkspace.Group(\"salesGroup\", new()\n    {\n        Email = \"sales@example.com\",\n    });\n\n    var michael = new Googleworkspace.User(\"michael\", new()\n    {\n        PrimaryEmail = \"michael.scott@example.com\",\n        Password = \"34819d7beeabb9260a5c854bc85b3e44\",\n        HashFunction = \"MD5\",\n        Name = new Googleworkspace.Inputs.UserNameArgs\n        {\n            FamilyName = \"Scott\",\n            GivenName = \"Michael\",\n        },\n    });\n\n    var frank = new Googleworkspace.User(\"frank\", new()\n    {\n        PrimaryEmail = \"frank.scott@example.com\",\n        Password = \"2095312189753de6ad47dfe20cbe97ec\",\n        HashFunction = \"MD5\",\n        Name = new Googleworkspace.Inputs.UserNameArgs\n        {\n            FamilyName = \"Scott\",\n            GivenName = \"Frank\",\n        },\n    });\n\n    var salesGroupMembers = new Googleworkspace.GroupMembers(\"salesGroupMembers\", new()\n    {\n        GroupId = salesGroup.Id,\n        Members = new[]\n        {\n            new Googleworkspace.Inputs.GroupMembersMemberArgs\n            {\n                Email = michael.PrimaryEmail,\n                Role = \"MANAGER\",\n            },\n            new Googleworkspace.Inputs.GroupMembersMemberArgs\n            {\n                Email = frank.PrimaryEmail,\n                Role = \"MEMBER\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/googleworkspace/googleworkspace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsalesGroup, err := googleworkspace.NewGroup(ctx, \"salesGroup\", &googleworkspace.GroupArgs{\n\t\t\tEmail: pulumi.String(\"sales@example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmichael, err := googleworkspace.NewUser(ctx, \"michael\", &googleworkspace.UserArgs{\n\t\t\tPrimaryEmail: pulumi.String(\"michael.scott@example.com\"),\n\t\t\tPassword:     pulumi.String(\"34819d7beeabb9260a5c854bc85b3e44\"),\n\t\t\tHashFunction: pulumi.String(\"MD5\"),\n\t\t\tName: &googleworkspace.UserNameArgs{\n\t\t\t\tFamilyName: pulumi.String(\"Scott\"),\n\t\t\t\tGivenName:  pulumi.String(\"Michael\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrank, err := googleworkspace.NewUser(ctx, \"frank\", &googleworkspace.UserArgs{\n\t\t\tPrimaryEmail: pulumi.String(\"frank.scott@example.com\"),\n\t\t\tPassword:     pulumi.String(\"2095312189753de6ad47dfe20cbe97ec\"),\n\t\t\tHashFunction: pulumi.String(\"MD5\"),\n\t\t\tName: &googleworkspace.UserNameArgs{\n\t\t\t\tFamilyName: pulumi.String(\"Scott\"),\n\t\t\t\tGivenName:  pulumi.String(\"Frank\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = googleworkspace.NewGroupMembers(ctx, \"salesGroupMembers\", &googleworkspace.GroupMembersArgs{\n\t\t\tGroupId: salesGroup.ID(),\n\t\t\tMembers: googleworkspace.GroupMembersMemberArray{\n\t\t\t\t&googleworkspace.GroupMembersMemberArgs{\n\t\t\t\t\tEmail: michael.PrimaryEmail,\n\t\t\t\t\tRole:  pulumi.String(\"MANAGER\"),\n\t\t\t\t},\n\t\t\t\t&googleworkspace.GroupMembersMemberArgs{\n\t\t\t\t\tEmail: frank.PrimaryEmail,\n\t\t\t\t\tRole:  pulumi.String(\"MEMBER\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.googleworkspace.Group;\nimport com.pulumi.googleworkspace.GroupArgs;\nimport com.pulumi.googleworkspace.User;\nimport com.pulumi.googleworkspace.UserArgs;\nimport com.pulumi.googleworkspace.inputs.UserNameArgs;\nimport com.pulumi.googleworkspace.GroupMembers;\nimport com.pulumi.googleworkspace.GroupMembersArgs;\nimport com.pulumi.googleworkspace.inputs.GroupMembersMemberArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var salesGroup = new Group(\"salesGroup\", GroupArgs.builder()\n            .email(\"sales@example.com\")\n            .build());\n\n        var michael = new User(\"michael\", UserArgs.builder()\n            .primaryEmail(\"michael.scott@example.com\")\n            .password(\"34819d7beeabb9260a5c854bc85b3e44\")\n            .hashFunction(\"MD5\")\n            .name(UserNameArgs.builder()\n                .familyName(\"Scott\")\n                .givenName(\"Michael\")\n                .build())\n            .build());\n\n        var frank = new User(\"frank\", UserArgs.builder()\n            .primaryEmail(\"frank.scott@example.com\")\n            .password(\"2095312189753de6ad47dfe20cbe97ec\")\n            .hashFunction(\"MD5\")\n            .name(UserNameArgs.builder()\n                .familyName(\"Scott\")\n                .givenName(\"Frank\")\n                .build())\n            .build());\n\n        var salesGroupMembers = new GroupMembers(\"salesGroupMembers\", GroupMembersArgs.builder()\n            .groupId(salesGroup.id())\n            .members(            \n                GroupMembersMemberArgs.builder()\n                    .email(michael.primaryEmail())\n                    .role(\"MANAGER\")\n                    .build(),\n                GroupMembersMemberArgs.builder()\n                    .email(frank.primaryEmail())\n                    .role(\"MEMBER\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  salesGroup:\n    type: googleworkspace:Group\n    properties:\n      email: sales@example.com\n  michael:\n    type: googleworkspace:User\n    properties:\n      primaryEmail: michael.scott@example.com\n      password: 34819d7beeabb9260a5c854bc85b3e44\n      hashFunction: MD5\n      name:\n        familyName: Scott\n        givenName: Michael\n  frank:\n    type: googleworkspace:User\n    properties:\n      primaryEmail: frank.scott@example.com\n      password: 2095312189753de6ad47dfe20cbe97ec\n      hashFunction: MD5\n      name:\n        familyName: Scott\n        givenName: Frank\n  salesGroupMembers:\n    type: googleworkspace:GroupMembers\n    properties:\n      groupId: ${salesGroup.id}\n      members:\n        - email: ${michael.primaryEmail}\n          role: MANAGER\n        - email: ${frank.primaryEmail}\n          role: MEMBER\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n```sh\n$ pulumi import googleworkspace:index/groupMembers:GroupMembers sales groups/01abcde23fg4h5i\n```\n\n",
      "properties": {
        "etag": {
          "type": "string",
          "description": "ETag of the resource.\n"
        },
        "groupId": {
          "type": "string",
          "description": "Identifies the group in the API request. The value can be the group's email address, group alias, or the unique group\nID.\n"
        },
        "members": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FGroupMembersMember:GroupMembersMember"
          },
          "description": "The members of the group\n"
        }
      },
      "type": "object",
      "required": [
        "etag",
        "groupId"
      ],
      "inputProperties": {
        "groupId": {
          "type": "string",
          "description": "Identifies the group in the API request. The value can be the group's email address, group alias, or the unique group\nID.\n"
        },
        "members": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FGroupMembersMember:GroupMembersMember"
          },
          "description": "The members of the group\n"
        }
      },
      "requiredInputs": [
        "groupId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering GroupMembers resources.\n",
        "properties": {
          "etag": {
            "type": "string",
            "description": "ETag of the resource.\n"
          },
          "groupId": {
            "type": "string",
            "description": "Identifies the group in the API request. The value can be the group's email address, group alias, or the unique group\nID.\n"
          },
          "members": {
            "type": "array",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FGroupMembersMember:GroupMembersMember"
            },
            "description": "The members of the group\n"
          }
        },
        "type": "object"
      }
    },
    "googleworkspace:index/groupSettings:GroupSettings": {
      "description": "Group Settings resource manages Google Workspace Groups Setting. Group Settings requires the `https://www.googleapis.com/auth/apps.groups.settings` client scope.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as googleworkspace from \"@pulumi/googleworkspace\";\n\nconst sales = new googleworkspace.Group(\"sales\", {email: \"sales@example.com\"});\nconst sales_settings = new googleworkspace.GroupSettings(\"sales-settings\", {\n    email: sales.email,\n    allowExternalMembers: false,\n    whoCanJoin: \"INVITED_CAN_JOIN\",\n    whoCanViewMembership: \"ALL_MANAGERS_CAN_VIEW\",\n    whoCanPostMessage: \"ALL_MEMBERS_CAN_POST\",\n});\n```\n```python\nimport pulumi\nimport pulumi_googleworkspace as googleworkspace\n\nsales = googleworkspace.Group(\"sales\", email=\"sales@example.com\")\nsales_settings = googleworkspace.GroupSettings(\"sales-settings\",\n    email=sales.email,\n    allow_external_members=False,\n    who_can_join=\"INVITED_CAN_JOIN\",\n    who_can_view_membership=\"ALL_MANAGERS_CAN_VIEW\",\n    who_can_post_message=\"ALL_MEMBERS_CAN_POST\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Googleworkspace = Pulumi.Googleworkspace;\n\nreturn await Deployment.RunAsync(() => \n{\n    var sales = new Googleworkspace.Group(\"sales\", new()\n    {\n        Email = \"sales@example.com\",\n    });\n\n    var sales_settings = new Googleworkspace.GroupSettings(\"sales-settings\", new()\n    {\n        Email = sales.Email,\n        AllowExternalMembers = false,\n        WhoCanJoin = \"INVITED_CAN_JOIN\",\n        WhoCanViewMembership = \"ALL_MANAGERS_CAN_VIEW\",\n        WhoCanPostMessage = \"ALL_MEMBERS_CAN_POST\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/googleworkspace/googleworkspace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsales, err := googleworkspace.NewGroup(ctx, \"sales\", &googleworkspace.GroupArgs{\n\t\t\tEmail: pulumi.String(\"sales@example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = googleworkspace.NewGroupSettings(ctx, \"sales-settings\", &googleworkspace.GroupSettingsArgs{\n\t\t\tEmail:                sales.Email,\n\t\t\tAllowExternalMembers: pulumi.Bool(false),\n\t\t\tWhoCanJoin:           pulumi.String(\"INVITED_CAN_JOIN\"),\n\t\t\tWhoCanViewMembership: pulumi.String(\"ALL_MANAGERS_CAN_VIEW\"),\n\t\t\tWhoCanPostMessage:    pulumi.String(\"ALL_MEMBERS_CAN_POST\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.googleworkspace.Group;\nimport com.pulumi.googleworkspace.GroupArgs;\nimport com.pulumi.googleworkspace.GroupSettings;\nimport com.pulumi.googleworkspace.GroupSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var sales = new Group(\"sales\", GroupArgs.builder()\n            .email(\"sales@example.com\")\n            .build());\n\n        var sales_settings = new GroupSettings(\"sales-settings\", GroupSettingsArgs.builder()\n            .email(sales.email())\n            .allowExternalMembers(false)\n            .whoCanJoin(\"INVITED_CAN_JOIN\")\n            .whoCanViewMembership(\"ALL_MANAGERS_CAN_VIEW\")\n            .whoCanPostMessage(\"ALL_MEMBERS_CAN_POST\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  sales:\n    type: googleworkspace:Group\n    properties:\n      email: sales@example.com\n  sales-settings:\n    type: googleworkspace:GroupSettings\n    properties:\n      email: ${sales.email}\n      allowExternalMembers: false\n      whoCanJoin: INVITED_CAN_JOIN\n      whoCanViewMembership: ALL_MANAGERS_CAN_VIEW\n      whoCanPostMessage: ALL_MEMBERS_CAN_POST\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n```sh\n$ pulumi import googleworkspace:index/groupSettings:GroupSettings sales-settings sales@example.com\n```\n\n",
      "properties": {
        "allowExternalMembers": {
          "type": "boolean",
          "description": "Defaults to `false`. Identifies whether members external to your organization can join the group. If true, Google\nWorkspace users external to your organization can become members of this group. If false, users not belonging to the\norganization are not allowed to become members of this group.\n"
        },
        "allowWebPosting": {
          "type": "boolean",
          "description": "Defaults to `true`. Allows posting from web. If true, allows any member to post to the group forum. If false, Members\nonly use Gmail to communicate with the group.\n"
        },
        "archiveOnly": {
          "type": "boolean",
          "description": "Defaults to `false`. Allows the group to be archived only. If true, Group is archived and the group is inactive. New\nmessages to this group are rejected. The older archived messages are browsable and searchable. If true, the\n`who_can_post_message` property is set to `NONE_CAN_POST`. If reverted from true to false, `who_can_post_message` is set\nto `ALL_MANAGERS_CAN_POST`. If false, The group is active and can receive messages. When false, updating\n`who_can_post_message` to `NONE_CAN_POST`, results in an error.\n"
        },
        "customFooterText": {
          "type": "string",
          "description": "Set the content of custom footer text. The maximum number of characters is 1,000.\n"
        },
        "customReplyTo": {
          "type": "string",
          "description": "An email address used when replying to a message if the `reply_to` property is set to `REPLY_TO_CUSTOM`. This address is\ndefined by an account administrator. When the group's `reply_to` property is set to `REPLY_TO_CUSTOM`, the\n`custom_reply_to` property holds a custom email address used when replying to a message, the `custom_reply_to` property\nmust have a text value or an error is returned.\n"
        },
        "customRolesEnabledForSettingsToBeMerged": {
          "type": "boolean",
          "description": "Specifies whether the group has a custom role that's included in one of the settings being merged.\n"
        },
        "defaultMessageDenyNotificationText": {
          "type": "string",
          "description": "When a message is rejected, this is text for the rejection notification sent to the message's author. By default, this\nproperty is empty and has no value in the API's response body. The maximum notification text size is 10,000 characters.\nRequires `send_message_deny_notification` property to be true.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the group. The maximum group description is no more than 300 characters.\n"
        },
        "email": {
          "type": "string",
          "description": "The group's email address.\n"
        },
        "enableCollaborativeInbox": {
          "type": "boolean",
          "description": "Defaults to `false`. Specifies whether a collaborative inbox will remain turned on for the group.\n"
        },
        "includeCustomFooter": {
          "type": "boolean",
          "description": "Defaults to `false`. Whether to include custom footer.\n"
        },
        "includeInGlobalAddressList": {
          "type": "boolean",
          "description": "Defaults to `true`. Enables the group to be included in the Global Address List. If true, the group is included in the\nGlobal Address List. If false, it is not included in the Global Address List.\n"
        },
        "isArchived": {
          "type": "boolean",
          "description": "Defaults to `false`. Allows the Group contents to be archived. If true, archive messages sent to the group. If false, Do\nnot keep an archive of messages sent to this group. If false, previously archived messages remain in the archive.\n"
        },
        "membersCanPostAsTheGroup": {
          "type": "boolean",
          "description": "Defaults to `false`. Enables members to post messages as the group. If true, group member can post messages using the\ngroup's email address instead of their own email address. Message appear to originate from the group itself. Any message\nmoderation settings on individual users or new members do not apply to posts made on behalf of the group. If false,\nmembers can not post in behalf of the group's email address.\n"
        },
        "messageModerationLevel": {
          "type": "string",
          "description": "Defaults to `MODERATE_NONE`. Moderation level of incoming messages. Possible values are: - `MODERATE_ALL_MESSAGES`: All\nmessages are sent to the group owner's email address for approval. If approved, the message is sent to the group. -\n`MODERATE_NON_MEMBERS`: All messages from non group members are sent to the group owner's email address for approval. If\napproved, the message is sent to the group. - `MODERATE_NEW_MEMBERS`: All messages from new members are sent to the\ngroup owner's email address for approval. If approved, the message is sent to the group. - `MODERATE_NONE`: No moderator\napproval is required. Messages are delivered directly to the group. Note: When the `who_can_post_message` is set to\n`ANYONE_CAN_POST`, we recommend the `message_moderation_level` be set to `MODERATE_NON_MEMBERS` to protect the group\nfrom possible spam.When `member_can_post_as_the_group` is true, any message moderation settings on individual users or\nnew members will not apply to posts made on behalf of the group.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the group, which has a maximum size of 75 characters.\n"
        },
        "primaryLanguage": {
          "type": "string",
          "description": "The primary language for group. For a group's primary language use the language tags from the Google Workspace languages\nfound at Google Workspace Email Settings API Email Language Tags.\n"
        },
        "replyTo": {
          "type": "string",
          "description": "Defaults to `REPLY_TO_IGNORE`. Specifies who receives the default reply. Possible values are: - `REPLY_TO_CUSTOM`: For\nreplies to messages, use the group's custom email address. When set to `REPLY_TO_CUSTOM`, the `custom_reply_to` property\nholds the custom email address used when replying to a message, the customReplyTo property must have a value. Otherwise\nan error is returned. - `REPLY_TO_SENDER`: The reply sent to author of message. - `REPLY_TO_LIST`: This reply message is\nsent to the group. - `REPLY_TO_OWNER`: The reply is sent to the owner(s) of the group. This does not include the group's\nmanagers. - `REPLY_TO_IGNORE`: Group users individually decide where the message reply is sent. - `REPLY_TO_MANAGERS`:\nThis reply message is sent to the group's managers, which includes all managers and the group owner.\n"
        },
        "sendMessageDenyNotification": {
          "type": "boolean",
          "description": "Defaults to `false`. Allows a member to be notified if the member's message to the group is denied by the group owner.\nIf true, when a message is rejected, send the deny message notification to the message author. The\n`default_message_deny_notification_text` property is dependent on the `send_message_deny_notification` property being\ntrue. If false, when a message is rejected, no notification is sent.\n"
        },
        "spamModerationLevel": {
          "type": "string",
          "description": "Defaults to `MODERATE`. Specifies moderation levels for messages detected as spam. Possible values are: - `ALLOW`: Post\nthe message to the group. - `MODERATE`: Send the message to the moderation queue. This is the default. -\n`SILENTLY_MODERATE`: Send the message to the moderation queue, but do not send notification to moderators. - `REJECT`:\nImmediately reject the message.\n"
        },
        "timeouts": {
          "$ref": "#/types/googleworkspace:index%2FGroupSettingsTimeouts:GroupSettingsTimeouts"
        },
        "whoCanAssistContent": {
          "type": "string",
          "description": "Defaults to `NONE`. Specifies who can moderate metadata. Possible values are: - `ALL_MEMBERS` - `OWNERS_AND_MANAGERS` -\n`MANAGERS_ONLY` - `OWNERS_ONLY` - `NONE`\n"
        },
        "whoCanContactOwner": {
          "type": "string",
          "description": "Defaults to `ANYONE_CAN_CONTACT`. Permission to contact owner of the group via web UI. Possible values are: -\n`ALL_IN_DOMAIN_CAN_CONTACT` - `ALL_MANAGERS_CAN_CONTACT` - `ALL_MEMBERS_CAN_CONTACT` - `ANYONE_CAN_CONTACT` -\n`ALL_OWNERS_CAN_CONTACT`\n"
        },
        "whoCanDiscoverGroup": {
          "type": "string",
          "description": "Defaults to `ALL_IN_DOMAIN_CAN_DISCOVER`. Specifies the set of users for whom this group is discoverable. Possible\nvalues are: - `ANYONE_CAN_DISCOVER` - `ALL_IN_DOMAIN_CAN_DISCOVER` - `ALL_MEMBERS_CAN_DISCOVER`\n"
        },
        "whoCanJoin": {
          "type": "string",
          "description": "Defaults to `CAN_REQUEST_TO_JOIN`. Permission to join group. Possible values are: - `ANYONE_CAN_JOIN`: Any Internet\nuser, both inside and outside your domain, can join the group. - `ALL_IN_DOMAIN_CAN_JOIN`: Anyone in the account domain\ncan join. This includes accounts with multiple domains. - `INVITED_CAN_JOIN`: Candidates for membership can be invited\nto join. - `CAN_REQUEST_TO_JOIN`: Non members can request an invitation to join.\n"
        },
        "whoCanLeaveGroup": {
          "type": "string",
          "description": "Defaults to `ALL_MEMBERS_CAN_LEAVE`. Permission to leave the group. Possible values are: - `ALL_MANAGERS_CAN_LEAVE` -\n`ALL_MEMBERS_CAN_LEAVE` - `NONE_CAN_LEAVE`\n"
        },
        "whoCanModerateContent": {
          "type": "string",
          "description": "Defaults to `OWNERS_AND_MANAGERS`. Specifies who can moderate content. Possible values are: - `ALL_MEMBERS` -\n`OWNERS_AND_MANAGERS` - `OWNERS_ONLY` - `NONE`\n"
        },
        "whoCanModerateMembers": {
          "type": "string",
          "description": "Defaults to `OWNERS_AND_MANAGERS`. Specifies who can manage members. Possible values are: - `ALL_MEMBERS` -\n`OWNERS_AND_MANAGERS` - `OWNERS_ONLY` - `NONE`\n"
        },
        "whoCanPostMessage": {
          "type": "string",
          "description": "Permissions to post messages. Possible values are: - `NONE_CAN_POST`: The group is disabled and archived. No one can\npost a message to this group. * When archiveOnly is false, updating whoCanPostMessage to NONE_CAN_POST, results in an\nerror. * If archiveOnly is reverted from true to false, whoCanPostMessages is set to ALL_MANAGERS_CAN_POST. -\n`ALL_MANAGERS_CAN_POST`: Managers, including group owners, can post messages. - `ALL_MEMBERS_CAN_POST`: Any group member\ncan post a message. - `ALL_OWNERS_CAN_POST`: Only group owners can post a message. - `ALL_IN_DOMAIN_CAN_POST`: Anyone in\nthe account can post a message. - `ANYONE_CAN_POST`: Any Internet user who outside your account can access your Google\nGroups service and post a message. *Note: When `who_can_post_message` is set to `ANYONE_CAN_POST`, we recommend\nthe`message_moderation_level` be set to `MODERATE_NON_MEMBERS` to protect the group from possible spam. Users not\nbelonging to the organization are not allowed to become members of this group.\n"
        },
        "whoCanViewGroup": {
          "type": "string",
          "description": "Defaults to `ALL_MEMBERS_CAN_VIEW`. Permissions to view group messages. Possible values are: - `ANYONE_CAN_VIEW`: Any\nInternet user can view the group's messages. - `ALL_IN_DOMAIN_CAN_VIEW`: Anyone in your account can view this group's\nmessages. - `ALL_MEMBERS_CAN_VIEW`: All group members can view the group's messages. - `ALL_MANAGERS_CAN_VIEW`: Any\ngroup manager can view this group's messages. - `ALL_OWNERS_CAN_VIEW`: The group owners can view this group's messages.\n"
        },
        "whoCanViewMembership": {
          "type": "string",
          "description": "Defaults to `ALL_MEMBERS_CAN_VIEW`. Permissions to view membership. Possible values are: - `ALL_IN_DOMAIN_CAN_VIEW`:\nAnyone in the account can view the group members list. If a group already has external members, those members can still\nsend email to this group. - `ALL_MEMBERS_CAN_VIEW`: The group members can view the group members list. -\n`ALL_MANAGERS_CAN_VIEW`: The group managers can view group members list. - `ALL_OWNERS_CAN_VIEW`: The group owners can\nview group members list.\n"
        }
      },
      "type": "object",
      "required": [
        "customRolesEnabledForSettingsToBeMerged",
        "description",
        "email",
        "name",
        "whoCanPostMessage"
      ],
      "inputProperties": {
        "allowExternalMembers": {
          "type": "boolean",
          "description": "Defaults to `false`. Identifies whether members external to your organization can join the group. If true, Google\nWorkspace users external to your organization can become members of this group. If false, users not belonging to the\norganization are not allowed to become members of this group.\n"
        },
        "allowWebPosting": {
          "type": "boolean",
          "description": "Defaults to `true`. Allows posting from web. If true, allows any member to post to the group forum. If false, Members\nonly use Gmail to communicate with the group.\n"
        },
        "archiveOnly": {
          "type": "boolean",
          "description": "Defaults to `false`. Allows the group to be archived only. If true, Group is archived and the group is inactive. New\nmessages to this group are rejected. The older archived messages are browsable and searchable. If true, the\n`who_can_post_message` property is set to `NONE_CAN_POST`. If reverted from true to false, `who_can_post_message` is set\nto `ALL_MANAGERS_CAN_POST`. If false, The group is active and can receive messages. When false, updating\n`who_can_post_message` to `NONE_CAN_POST`, results in an error.\n"
        },
        "customFooterText": {
          "type": "string",
          "description": "Set the content of custom footer text. The maximum number of characters is 1,000.\n"
        },
        "customReplyTo": {
          "type": "string",
          "description": "An email address used when replying to a message if the `reply_to` property is set to `REPLY_TO_CUSTOM`. This address is\ndefined by an account administrator. When the group's `reply_to` property is set to `REPLY_TO_CUSTOM`, the\n`custom_reply_to` property holds a custom email address used when replying to a message, the `custom_reply_to` property\nmust have a text value or an error is returned.\n"
        },
        "defaultMessageDenyNotificationText": {
          "type": "string",
          "description": "When a message is rejected, this is text for the rejection notification sent to the message's author. By default, this\nproperty is empty and has no value in the API's response body. The maximum notification text size is 10,000 characters.\nRequires `send_message_deny_notification` property to be true.\n"
        },
        "email": {
          "type": "string",
          "description": "The group's email address.\n"
        },
        "enableCollaborativeInbox": {
          "type": "boolean",
          "description": "Defaults to `false`. Specifies whether a collaborative inbox will remain turned on for the group.\n"
        },
        "includeCustomFooter": {
          "type": "boolean",
          "description": "Defaults to `false`. Whether to include custom footer.\n"
        },
        "includeInGlobalAddressList": {
          "type": "boolean",
          "description": "Defaults to `true`. Enables the group to be included in the Global Address List. If true, the group is included in the\nGlobal Address List. If false, it is not included in the Global Address List.\n"
        },
        "isArchived": {
          "type": "boolean",
          "description": "Defaults to `false`. Allows the Group contents to be archived. If true, archive messages sent to the group. If false, Do\nnot keep an archive of messages sent to this group. If false, previously archived messages remain in the archive.\n"
        },
        "membersCanPostAsTheGroup": {
          "type": "boolean",
          "description": "Defaults to `false`. Enables members to post messages as the group. If true, group member can post messages using the\ngroup's email address instead of their own email address. Message appear to originate from the group itself. Any message\nmoderation settings on individual users or new members do not apply to posts made on behalf of the group. If false,\nmembers can not post in behalf of the group's email address.\n"
        },
        "messageModerationLevel": {
          "type": "string",
          "description": "Defaults to `MODERATE_NONE`. Moderation level of incoming messages. Possible values are: - `MODERATE_ALL_MESSAGES`: All\nmessages are sent to the group owner's email address for approval. If approved, the message is sent to the group. -\n`MODERATE_NON_MEMBERS`: All messages from non group members are sent to the group owner's email address for approval. If\napproved, the message is sent to the group. - `MODERATE_NEW_MEMBERS`: All messages from new members are sent to the\ngroup owner's email address for approval. If approved, the message is sent to the group. - `MODERATE_NONE`: No moderator\napproval is required. Messages are delivered directly to the group. Note: When the `who_can_post_message` is set to\n`ANYONE_CAN_POST`, we recommend the `message_moderation_level` be set to `MODERATE_NON_MEMBERS` to protect the group\nfrom possible spam.When `member_can_post_as_the_group` is true, any message moderation settings on individual users or\nnew members will not apply to posts made on behalf of the group.\n"
        },
        "primaryLanguage": {
          "type": "string",
          "description": "The primary language for group. For a group's primary language use the language tags from the Google Workspace languages\nfound at Google Workspace Email Settings API Email Language Tags.\n"
        },
        "replyTo": {
          "type": "string",
          "description": "Defaults to `REPLY_TO_IGNORE`. Specifies who receives the default reply. Possible values are: - `REPLY_TO_CUSTOM`: For\nreplies to messages, use the group's custom email address. When set to `REPLY_TO_CUSTOM`, the `custom_reply_to` property\nholds the custom email address used when replying to a message, the customReplyTo property must have a value. Otherwise\nan error is returned. - `REPLY_TO_SENDER`: The reply sent to author of message. - `REPLY_TO_LIST`: This reply message is\nsent to the group. - `REPLY_TO_OWNER`: The reply is sent to the owner(s) of the group. This does not include the group's\nmanagers. - `REPLY_TO_IGNORE`: Group users individually decide where the message reply is sent. - `REPLY_TO_MANAGERS`:\nThis reply message is sent to the group's managers, which includes all managers and the group owner.\n"
        },
        "sendMessageDenyNotification": {
          "type": "boolean",
          "description": "Defaults to `false`. Allows a member to be notified if the member's message to the group is denied by the group owner.\nIf true, when a message is rejected, send the deny message notification to the message author. The\n`default_message_deny_notification_text` property is dependent on the `send_message_deny_notification` property being\ntrue. If false, when a message is rejected, no notification is sent.\n"
        },
        "spamModerationLevel": {
          "type": "string",
          "description": "Defaults to `MODERATE`. Specifies moderation levels for messages detected as spam. Possible values are: - `ALLOW`: Post\nthe message to the group. - `MODERATE`: Send the message to the moderation queue. This is the default. -\n`SILENTLY_MODERATE`: Send the message to the moderation queue, but do not send notification to moderators. - `REJECT`:\nImmediately reject the message.\n"
        },
        "timeouts": {
          "$ref": "#/types/googleworkspace:index%2FGroupSettingsTimeouts:GroupSettingsTimeouts"
        },
        "whoCanAssistContent": {
          "type": "string",
          "description": "Defaults to `NONE`. Specifies who can moderate metadata. Possible values are: - `ALL_MEMBERS` - `OWNERS_AND_MANAGERS` -\n`MANAGERS_ONLY` - `OWNERS_ONLY` - `NONE`\n"
        },
        "whoCanContactOwner": {
          "type": "string",
          "description": "Defaults to `ANYONE_CAN_CONTACT`. Permission to contact owner of the group via web UI. Possible values are: -\n`ALL_IN_DOMAIN_CAN_CONTACT` - `ALL_MANAGERS_CAN_CONTACT` - `ALL_MEMBERS_CAN_CONTACT` - `ANYONE_CAN_CONTACT` -\n`ALL_OWNERS_CAN_CONTACT`\n"
        },
        "whoCanDiscoverGroup": {
          "type": "string",
          "description": "Defaults to `ALL_IN_DOMAIN_CAN_DISCOVER`. Specifies the set of users for whom this group is discoverable. Possible\nvalues are: - `ANYONE_CAN_DISCOVER` - `ALL_IN_DOMAIN_CAN_DISCOVER` - `ALL_MEMBERS_CAN_DISCOVER`\n"
        },
        "whoCanJoin": {
          "type": "string",
          "description": "Defaults to `CAN_REQUEST_TO_JOIN`. Permission to join group. Possible values are: - `ANYONE_CAN_JOIN`: Any Internet\nuser, both inside and outside your domain, can join the group. - `ALL_IN_DOMAIN_CAN_JOIN`: Anyone in the account domain\ncan join. This includes accounts with multiple domains. - `INVITED_CAN_JOIN`: Candidates for membership can be invited\nto join. - `CAN_REQUEST_TO_JOIN`: Non members can request an invitation to join.\n"
        },
        "whoCanLeaveGroup": {
          "type": "string",
          "description": "Defaults to `ALL_MEMBERS_CAN_LEAVE`. Permission to leave the group. Possible values are: - `ALL_MANAGERS_CAN_LEAVE` -\n`ALL_MEMBERS_CAN_LEAVE` - `NONE_CAN_LEAVE`\n"
        },
        "whoCanModerateContent": {
          "type": "string",
          "description": "Defaults to `OWNERS_AND_MANAGERS`. Specifies who can moderate content. Possible values are: - `ALL_MEMBERS` -\n`OWNERS_AND_MANAGERS` - `OWNERS_ONLY` - `NONE`\n"
        },
        "whoCanModerateMembers": {
          "type": "string",
          "description": "Defaults to `OWNERS_AND_MANAGERS`. Specifies who can manage members. Possible values are: - `ALL_MEMBERS` -\n`OWNERS_AND_MANAGERS` - `OWNERS_ONLY` - `NONE`\n"
        },
        "whoCanPostMessage": {
          "type": "string",
          "description": "Permissions to post messages. Possible values are: - `NONE_CAN_POST`: The group is disabled and archived. No one can\npost a message to this group. * When archiveOnly is false, updating whoCanPostMessage to NONE_CAN_POST, results in an\nerror. * If archiveOnly is reverted from true to false, whoCanPostMessages is set to ALL_MANAGERS_CAN_POST. -\n`ALL_MANAGERS_CAN_POST`: Managers, including group owners, can post messages. - `ALL_MEMBERS_CAN_POST`: Any group member\ncan post a message. - `ALL_OWNERS_CAN_POST`: Only group owners can post a message. - `ALL_IN_DOMAIN_CAN_POST`: Anyone in\nthe account can post a message. - `ANYONE_CAN_POST`: Any Internet user who outside your account can access your Google\nGroups service and post a message. *Note: When `who_can_post_message` is set to `ANYONE_CAN_POST`, we recommend\nthe`message_moderation_level` be set to `MODERATE_NON_MEMBERS` to protect the group from possible spam. Users not\nbelonging to the organization are not allowed to become members of this group.\n"
        },
        "whoCanViewGroup": {
          "type": "string",
          "description": "Defaults to `ALL_MEMBERS_CAN_VIEW`. Permissions to view group messages. Possible values are: - `ANYONE_CAN_VIEW`: Any\nInternet user can view the group's messages. - `ALL_IN_DOMAIN_CAN_VIEW`: Anyone in your account can view this group's\nmessages. - `ALL_MEMBERS_CAN_VIEW`: All group members can view the group's messages. - `ALL_MANAGERS_CAN_VIEW`: Any\ngroup manager can view this group's messages. - `ALL_OWNERS_CAN_VIEW`: The group owners can view this group's messages.\n"
        },
        "whoCanViewMembership": {
          "type": "string",
          "description": "Defaults to `ALL_MEMBERS_CAN_VIEW`. Permissions to view membership. Possible values are: - `ALL_IN_DOMAIN_CAN_VIEW`:\nAnyone in the account can view the group members list. If a group already has external members, those members can still\nsend email to this group. - `ALL_MEMBERS_CAN_VIEW`: The group members can view the group members list. -\n`ALL_MANAGERS_CAN_VIEW`: The group managers can view group members list. - `ALL_OWNERS_CAN_VIEW`: The group owners can\nview group members list.\n"
        }
      },
      "requiredInputs": [
        "email"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering GroupSettings resources.\n",
        "properties": {
          "allowExternalMembers": {
            "type": "boolean",
            "description": "Defaults to `false`. Identifies whether members external to your organization can join the group. If true, Google\nWorkspace users external to your organization can become members of this group. If false, users not belonging to the\norganization are not allowed to become members of this group.\n"
          },
          "allowWebPosting": {
            "type": "boolean",
            "description": "Defaults to `true`. Allows posting from web. If true, allows any member to post to the group forum. If false, Members\nonly use Gmail to communicate with the group.\n"
          },
          "archiveOnly": {
            "type": "boolean",
            "description": "Defaults to `false`. Allows the group to be archived only. If true, Group is archived and the group is inactive. New\nmessages to this group are rejected. The older archived messages are browsable and searchable. If true, the\n`who_can_post_message` property is set to `NONE_CAN_POST`. If reverted from true to false, `who_can_post_message` is set\nto `ALL_MANAGERS_CAN_POST`. If false, The group is active and can receive messages. When false, updating\n`who_can_post_message` to `NONE_CAN_POST`, results in an error.\n"
          },
          "customFooterText": {
            "type": "string",
            "description": "Set the content of custom footer text. The maximum number of characters is 1,000.\n"
          },
          "customReplyTo": {
            "type": "string",
            "description": "An email address used when replying to a message if the `reply_to` property is set to `REPLY_TO_CUSTOM`. This address is\ndefined by an account administrator. When the group's `reply_to` property is set to `REPLY_TO_CUSTOM`, the\n`custom_reply_to` property holds a custom email address used when replying to a message, the `custom_reply_to` property\nmust have a text value or an error is returned.\n"
          },
          "customRolesEnabledForSettingsToBeMerged": {
            "type": "boolean",
            "description": "Specifies whether the group has a custom role that's included in one of the settings being merged.\n"
          },
          "defaultMessageDenyNotificationText": {
            "type": "string",
            "description": "When a message is rejected, this is text for the rejection notification sent to the message's author. By default, this\nproperty is empty and has no value in the API's response body. The maximum notification text size is 10,000 characters.\nRequires `send_message_deny_notification` property to be true.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the group. The maximum group description is no more than 300 characters.\n"
          },
          "email": {
            "type": "string",
            "description": "The group's email address.\n"
          },
          "enableCollaborativeInbox": {
            "type": "boolean",
            "description": "Defaults to `false`. Specifies whether a collaborative inbox will remain turned on for the group.\n"
          },
          "includeCustomFooter": {
            "type": "boolean",
            "description": "Defaults to `false`. Whether to include custom footer.\n"
          },
          "includeInGlobalAddressList": {
            "type": "boolean",
            "description": "Defaults to `true`. Enables the group to be included in the Global Address List. If true, the group is included in the\nGlobal Address List. If false, it is not included in the Global Address List.\n"
          },
          "isArchived": {
            "type": "boolean",
            "description": "Defaults to `false`. Allows the Group contents to be archived. If true, archive messages sent to the group. If false, Do\nnot keep an archive of messages sent to this group. If false, previously archived messages remain in the archive.\n"
          },
          "membersCanPostAsTheGroup": {
            "type": "boolean",
            "description": "Defaults to `false`. Enables members to post messages as the group. If true, group member can post messages using the\ngroup's email address instead of their own email address. Message appear to originate from the group itself. Any message\nmoderation settings on individual users or new members do not apply to posts made on behalf of the group. If false,\nmembers can not post in behalf of the group's email address.\n"
          },
          "messageModerationLevel": {
            "type": "string",
            "description": "Defaults to `MODERATE_NONE`. Moderation level of incoming messages. Possible values are: - `MODERATE_ALL_MESSAGES`: All\nmessages are sent to the group owner's email address for approval. If approved, the message is sent to the group. -\n`MODERATE_NON_MEMBERS`: All messages from non group members are sent to the group owner's email address for approval. If\napproved, the message is sent to the group. - `MODERATE_NEW_MEMBERS`: All messages from new members are sent to the\ngroup owner's email address for approval. If approved, the message is sent to the group. - `MODERATE_NONE`: No moderator\napproval is required. Messages are delivered directly to the group. Note: When the `who_can_post_message` is set to\n`ANYONE_CAN_POST`, we recommend the `message_moderation_level` be set to `MODERATE_NON_MEMBERS` to protect the group\nfrom possible spam.When `member_can_post_as_the_group` is true, any message moderation settings on individual users or\nnew members will not apply to posts made on behalf of the group.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the group, which has a maximum size of 75 characters.\n"
          },
          "primaryLanguage": {
            "type": "string",
            "description": "The primary language for group. For a group's primary language use the language tags from the Google Workspace languages\nfound at Google Workspace Email Settings API Email Language Tags.\n"
          },
          "replyTo": {
            "type": "string",
            "description": "Defaults to `REPLY_TO_IGNORE`. Specifies who receives the default reply. Possible values are: - `REPLY_TO_CUSTOM`: For\nreplies to messages, use the group's custom email address. When set to `REPLY_TO_CUSTOM`, the `custom_reply_to` property\nholds the custom email address used when replying to a message, the customReplyTo property must have a value. Otherwise\nan error is returned. - `REPLY_TO_SENDER`: The reply sent to author of message. - `REPLY_TO_LIST`: This reply message is\nsent to the group. - `REPLY_TO_OWNER`: The reply is sent to the owner(s) of the group. This does not include the group's\nmanagers. - `REPLY_TO_IGNORE`: Group users individually decide where the message reply is sent. - `REPLY_TO_MANAGERS`:\nThis reply message is sent to the group's managers, which includes all managers and the group owner.\n"
          },
          "sendMessageDenyNotification": {
            "type": "boolean",
            "description": "Defaults to `false`. Allows a member to be notified if the member's message to the group is denied by the group owner.\nIf true, when a message is rejected, send the deny message notification to the message author. The\n`default_message_deny_notification_text` property is dependent on the `send_message_deny_notification` property being\ntrue. If false, when a message is rejected, no notification is sent.\n"
          },
          "spamModerationLevel": {
            "type": "string",
            "description": "Defaults to `MODERATE`. Specifies moderation levels for messages detected as spam. Possible values are: - `ALLOW`: Post\nthe message to the group. - `MODERATE`: Send the message to the moderation queue. This is the default. -\n`SILENTLY_MODERATE`: Send the message to the moderation queue, but do not send notification to moderators. - `REJECT`:\nImmediately reject the message.\n"
          },
          "timeouts": {
            "$ref": "#/types/googleworkspace:index%2FGroupSettingsTimeouts:GroupSettingsTimeouts"
          },
          "whoCanAssistContent": {
            "type": "string",
            "description": "Defaults to `NONE`. Specifies who can moderate metadata. Possible values are: - `ALL_MEMBERS` - `OWNERS_AND_MANAGERS` -\n`MANAGERS_ONLY` - `OWNERS_ONLY` - `NONE`\n"
          },
          "whoCanContactOwner": {
            "type": "string",
            "description": "Defaults to `ANYONE_CAN_CONTACT`. Permission to contact owner of the group via web UI. Possible values are: -\n`ALL_IN_DOMAIN_CAN_CONTACT` - `ALL_MANAGERS_CAN_CONTACT` - `ALL_MEMBERS_CAN_CONTACT` - `ANYONE_CAN_CONTACT` -\n`ALL_OWNERS_CAN_CONTACT`\n"
          },
          "whoCanDiscoverGroup": {
            "type": "string",
            "description": "Defaults to `ALL_IN_DOMAIN_CAN_DISCOVER`. Specifies the set of users for whom this group is discoverable. Possible\nvalues are: - `ANYONE_CAN_DISCOVER` - `ALL_IN_DOMAIN_CAN_DISCOVER` - `ALL_MEMBERS_CAN_DISCOVER`\n"
          },
          "whoCanJoin": {
            "type": "string",
            "description": "Defaults to `CAN_REQUEST_TO_JOIN`. Permission to join group. Possible values are: - `ANYONE_CAN_JOIN`: Any Internet\nuser, both inside and outside your domain, can join the group. - `ALL_IN_DOMAIN_CAN_JOIN`: Anyone in the account domain\ncan join. This includes accounts with multiple domains. - `INVITED_CAN_JOIN`: Candidates for membership can be invited\nto join. - `CAN_REQUEST_TO_JOIN`: Non members can request an invitation to join.\n"
          },
          "whoCanLeaveGroup": {
            "type": "string",
            "description": "Defaults to `ALL_MEMBERS_CAN_LEAVE`. Permission to leave the group. Possible values are: - `ALL_MANAGERS_CAN_LEAVE` -\n`ALL_MEMBERS_CAN_LEAVE` - `NONE_CAN_LEAVE`\n"
          },
          "whoCanModerateContent": {
            "type": "string",
            "description": "Defaults to `OWNERS_AND_MANAGERS`. Specifies who can moderate content. Possible values are: - `ALL_MEMBERS` -\n`OWNERS_AND_MANAGERS` - `OWNERS_ONLY` - `NONE`\n"
          },
          "whoCanModerateMembers": {
            "type": "string",
            "description": "Defaults to `OWNERS_AND_MANAGERS`. Specifies who can manage members. Possible values are: - `ALL_MEMBERS` -\n`OWNERS_AND_MANAGERS` - `OWNERS_ONLY` - `NONE`\n"
          },
          "whoCanPostMessage": {
            "type": "string",
            "description": "Permissions to post messages. Possible values are: - `NONE_CAN_POST`: The group is disabled and archived. No one can\npost a message to this group. * When archiveOnly is false, updating whoCanPostMessage to NONE_CAN_POST, results in an\nerror. * If archiveOnly is reverted from true to false, whoCanPostMessages is set to ALL_MANAGERS_CAN_POST. -\n`ALL_MANAGERS_CAN_POST`: Managers, including group owners, can post messages. - `ALL_MEMBERS_CAN_POST`: Any group member\ncan post a message. - `ALL_OWNERS_CAN_POST`: Only group owners can post a message. - `ALL_IN_DOMAIN_CAN_POST`: Anyone in\nthe account can post a message. - `ANYONE_CAN_POST`: Any Internet user who outside your account can access your Google\nGroups service and post a message. *Note: When `who_can_post_message` is set to `ANYONE_CAN_POST`, we recommend\nthe`message_moderation_level` be set to `MODERATE_NON_MEMBERS` to protect the group from possible spam. Users not\nbelonging to the organization are not allowed to become members of this group.\n"
          },
          "whoCanViewGroup": {
            "type": "string",
            "description": "Defaults to `ALL_MEMBERS_CAN_VIEW`. Permissions to view group messages. Possible values are: - `ANYONE_CAN_VIEW`: Any\nInternet user can view the group's messages. - `ALL_IN_DOMAIN_CAN_VIEW`: Anyone in your account can view this group's\nmessages. - `ALL_MEMBERS_CAN_VIEW`: All group members can view the group's messages. - `ALL_MANAGERS_CAN_VIEW`: Any\ngroup manager can view this group's messages. - `ALL_OWNERS_CAN_VIEW`: The group owners can view this group's messages.\n"
          },
          "whoCanViewMembership": {
            "type": "string",
            "description": "Defaults to `ALL_MEMBERS_CAN_VIEW`. Permissions to view membership. Possible values are: - `ALL_IN_DOMAIN_CAN_VIEW`:\nAnyone in the account can view the group members list. If a group already has external members, those members can still\nsend email to this group. - `ALL_MEMBERS_CAN_VIEW`: The group members can view the group members list. -\n`ALL_MANAGERS_CAN_VIEW`: The group managers can view group members list. - `ALL_OWNERS_CAN_VIEW`: The group owners can\nview group members list.\n"
          }
        },
        "type": "object"
      }
    },
    "googleworkspace:index/orgUnit:OrgUnit": {
      "description": "OrgUnit resource manages Google Workspace OrgUnits. Org Unit resides under the `https://www.googleapis.com/auth/admin.directory.orgunit` client scope.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as googleworkspace from \"@pulumi/googleworkspace\";\n\nconst org = new googleworkspace.OrgUnit(\"org\", {\n    description: \"paper company\",\n    parentOrgUnitPath: \"/\",\n});\n```\n```python\nimport pulumi\nimport pulumi_googleworkspace as googleworkspace\n\norg = googleworkspace.OrgUnit(\"org\",\n    description=\"paper company\",\n    parent_org_unit_path=\"/\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Googleworkspace = Pulumi.Googleworkspace;\n\nreturn await Deployment.RunAsync(() => \n{\n    var org = new Googleworkspace.OrgUnit(\"org\", new()\n    {\n        Description = \"paper company\",\n        ParentOrgUnitPath = \"/\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/googleworkspace/googleworkspace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := googleworkspace.NewOrgUnit(ctx, \"org\", &googleworkspace.OrgUnitArgs{\n\t\t\tDescription:       pulumi.String(\"paper company\"),\n\t\t\tParentOrgUnitPath: pulumi.String(\"/\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.googleworkspace.OrgUnit;\nimport com.pulumi.googleworkspace.OrgUnitArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var org = new OrgUnit(\"org\", OrgUnitArgs.builder()\n            .description(\"paper company\")\n            .parentOrgUnitPath(\"/\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  org:\n    type: googleworkspace:OrgUnit\n    properties:\n      description: paper company\n      parentOrgUnitPath: /\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n```sh\n$ pulumi import googleworkspace:index/orgUnit:OrgUnit org \"id:01ab2c3d4efg56h\"\n```\n\n",
      "properties": {
        "blockInheritance": {
          "type": "boolean",
          "description": "Defaults to `false`. Determines if a sub-organizational unit can inherit the settings of the parent organization. False means a sub-organizational unit inherits the settings of the nearest parent organizational unit. For more information on inheritance and users in an organization structure, see the [administration help center](https://support.google.com/a/answer/4352075).\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the organizational unit.\n"
        },
        "etag": {
          "type": "string",
          "description": "ETag of the resource.\n"
        },
        "name": {
          "type": "string",
          "description": "The organizational unit's path name. For example, an organizational unit's name within the /corp/support/sales*support parent path is sales*support.\n"
        },
        "orgUnitId": {
          "type": "string",
          "description": "The unique ID of the organizational unit.\n"
        },
        "orgUnitPath": {
          "type": "string",
          "description": "The full path to the organizational unit. The orgUnitPath is a derived property. When listed, it is derived from parentOrgunitPath and organizational unit's name. For example, for an organizational unit named 'apps' under parent organization '/engineering', the orgUnitPath is '/engineering/apps'. In order to edit an orgUnitPath, either update the name of the organization or the parentOrgunitPath. A user's organizational unit determines which Google Workspace services the user has access to. If the user is moved to a new organization, the user's access changes. For more information about organization structures, see the [administration help center](https://support.google.com/a/answer/4352075). For more information about moving a user to a different organization, see [chromeosdevices.update a user](https://developers.google.com/admin-sdk/directory/v1/guides/manage-users#update_user).\n"
        },
        "parentOrgUnitId": {
          "type": "string",
          "description": "The unique ID of the parent organizational unit.\n"
        },
        "parentOrgUnitPath": {
          "type": "string",
          "description": "The organizational unit's parent path. For example, /corp/sales is the parent path for /corp/sales/sales_support organizational unit.\n"
        }
      },
      "type": "object",
      "required": [
        "etag",
        "name",
        "orgUnitId",
        "orgUnitPath",
        "parentOrgUnitId",
        "parentOrgUnitPath"
      ],
      "inputProperties": {
        "blockInheritance": {
          "type": "boolean",
          "description": "Defaults to `false`. Determines if a sub-organizational unit can inherit the settings of the parent organization. False means a sub-organizational unit inherits the settings of the nearest parent organizational unit. For more information on inheritance and users in an organization structure, see the [administration help center](https://support.google.com/a/answer/4352075).\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the organizational unit.\n"
        },
        "name": {
          "type": "string",
          "description": "The organizational unit's path name. For example, an organizational unit's name within the /corp/support/sales*support parent path is sales*support.\n"
        },
        "parentOrgUnitId": {
          "type": "string",
          "description": "The unique ID of the parent organizational unit.\n"
        },
        "parentOrgUnitPath": {
          "type": "string",
          "description": "The organizational unit's parent path. For example, /corp/sales is the parent path for /corp/sales/sales_support organizational unit.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering OrgUnit resources.\n",
        "properties": {
          "blockInheritance": {
            "type": "boolean",
            "description": "Defaults to `false`. Determines if a sub-organizational unit can inherit the settings of the parent organization. False means a sub-organizational unit inherits the settings of the nearest parent organizational unit. For more information on inheritance and users in an organization structure, see the [administration help center](https://support.google.com/a/answer/4352075).\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the organizational unit.\n"
          },
          "etag": {
            "type": "string",
            "description": "ETag of the resource.\n"
          },
          "name": {
            "type": "string",
            "description": "The organizational unit's path name. For example, an organizational unit's name within the /corp/support/sales*support parent path is sales*support.\n"
          },
          "orgUnitId": {
            "type": "string",
            "description": "The unique ID of the organizational unit.\n"
          },
          "orgUnitPath": {
            "type": "string",
            "description": "The full path to the organizational unit. The orgUnitPath is a derived property. When listed, it is derived from parentOrgunitPath and organizational unit's name. For example, for an organizational unit named 'apps' under parent organization '/engineering', the orgUnitPath is '/engineering/apps'. In order to edit an orgUnitPath, either update the name of the organization or the parentOrgunitPath. A user's organizational unit determines which Google Workspace services the user has access to. If the user is moved to a new organization, the user's access changes. For more information about organization structures, see the [administration help center](https://support.google.com/a/answer/4352075). For more information about moving a user to a different organization, see [chromeosdevices.update a user](https://developers.google.com/admin-sdk/directory/v1/guides/manage-users#update_user).\n"
          },
          "parentOrgUnitId": {
            "type": "string",
            "description": "The unique ID of the parent organizational unit.\n"
          },
          "parentOrgUnitPath": {
            "type": "string",
            "description": "The organizational unit's parent path. For example, /corp/sales is the parent path for /corp/sales/sales_support organizational unit.\n"
          }
        },
        "type": "object"
      }
    },
    "googleworkspace:index/role:Role": {
      "description": "## Example Usage\n\n## Import\n\n```sh\n$ pulumi import googleworkspace:index/role:Role admin 12345678901234567\n```\n\n",
      "properties": {
        "description": {
          "type": "string",
          "description": "A short description of the role.\n"
        },
        "etag": {
          "type": "string",
          "description": "ETag of the resource.\n"
        },
        "isSuperAdminRole": {
          "type": "boolean",
          "description": "Returns true if the role is a super admin role.\n"
        },
        "isSystemRole": {
          "type": "boolean",
          "description": "Returns true if this is a pre-defined system role.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the role.\n"
        },
        "privileges": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FRolePrivilege:RolePrivilege"
          },
          "description": "The set of privileges that are granted to this role.\n"
        }
      },
      "type": "object",
      "required": [
        "etag",
        "isSuperAdminRole",
        "isSystemRole",
        "name",
        "privileges"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "A short description of the role.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the role.\n"
        },
        "privileges": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FRolePrivilege:RolePrivilege"
          },
          "description": "The set of privileges that are granted to this role.\n"
        }
      },
      "requiredInputs": [
        "privileges"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Role resources.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "A short description of the role.\n"
          },
          "etag": {
            "type": "string",
            "description": "ETag of the resource.\n"
          },
          "isSuperAdminRole": {
            "type": "boolean",
            "description": "Returns true if the role is a super admin role.\n"
          },
          "isSystemRole": {
            "type": "boolean",
            "description": "Returns true if this is a pre-defined system role.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the role.\n"
          },
          "privileges": {
            "type": "array",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FRolePrivilege:RolePrivilege"
            },
            "description": "The set of privileges that are granted to this role.\n"
          }
        },
        "type": "object"
      }
    },
    "googleworkspace:index/roleAssignment:RoleAssignment": {
      "description": "## Example Usage\n\n## Import\n\n```sh\n$ pulumi import googleworkspace:index/roleAssignment:RoleAssignment dwight 12345678901234567\n```\n\n",
      "properties": {
        "assignedTo": {
          "type": "string",
          "description": "The unique ID of the user this role is assigned to.\n"
        },
        "etag": {
          "type": "string",
          "description": "ETag of the resource.\n"
        },
        "orgUnitId": {
          "type": "string",
          "description": "If the role is restricted to an organization unit, this contains the ID for the organization unit the exercise of this\nrole is restricted to.\n"
        },
        "roleId": {
          "type": "string",
          "description": "The ID of the role that is assigned.\n"
        },
        "scopeType": {
          "type": "string",
          "description": "Defaults to `CUSTOMER`. The scope in which this role is assigned. Valid values are : - `CUSTOMER` - `ORG_UNIT`\n"
        }
      },
      "type": "object",
      "required": [
        "assignedTo",
        "etag",
        "roleId"
      ],
      "inputProperties": {
        "assignedTo": {
          "type": "string",
          "description": "The unique ID of the user this role is assigned to.\n"
        },
        "orgUnitId": {
          "type": "string",
          "description": "If the role is restricted to an organization unit, this contains the ID for the organization unit the exercise of this\nrole is restricted to.\n"
        },
        "roleId": {
          "type": "string",
          "description": "The ID of the role that is assigned.\n"
        },
        "scopeType": {
          "type": "string",
          "description": "Defaults to `CUSTOMER`. The scope in which this role is assigned. Valid values are : - `CUSTOMER` - `ORG_UNIT`\n"
        }
      },
      "requiredInputs": [
        "assignedTo",
        "roleId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering RoleAssignment resources.\n",
        "properties": {
          "assignedTo": {
            "type": "string",
            "description": "The unique ID of the user this role is assigned to.\n"
          },
          "etag": {
            "type": "string",
            "description": "ETag of the resource.\n"
          },
          "orgUnitId": {
            "type": "string",
            "description": "If the role is restricted to an organization unit, this contains the ID for the organization unit the exercise of this\nrole is restricted to.\n"
          },
          "roleId": {
            "type": "string",
            "description": "The ID of the role that is assigned.\n"
          },
          "scopeType": {
            "type": "string",
            "description": "Defaults to `CUSTOMER`. The scope in which this role is assigned. Valid values are : - `CUSTOMER` - `ORG_UNIT`\n"
          }
        },
        "type": "object"
      }
    },
    "googleworkspace:index/schema:Schema": {
      "description": "Schema resource manages Google Workspace Schemas. Schema resides under the `https://www.googleapis.com/auth/admin.directory.userschema` client scope.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as googleworkspace from \"@pulumi/googleworkspace\";\n\nconst birthday = new googleworkspace.Schema(\"birthday\", {\n    fields: [{\n        fieldName: \"birthday\",\n        fieldType: \"DATE\",\n    }],\n    schemaName: \"birthday\",\n});\n```\n```python\nimport pulumi\nimport pulumi_googleworkspace as googleworkspace\n\nbirthday = googleworkspace.Schema(\"birthday\",\n    fields=[{\n        \"field_name\": \"birthday\",\n        \"field_type\": \"DATE\",\n    }],\n    schema_name=\"birthday\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Googleworkspace = Pulumi.Googleworkspace;\n\nreturn await Deployment.RunAsync(() => \n{\n    var birthday = new Googleworkspace.Schema(\"birthday\", new()\n    {\n        Fields = new[]\n        {\n            new Googleworkspace.Inputs.SchemaFieldArgs\n            {\n                FieldName = \"birthday\",\n                FieldType = \"DATE\",\n            },\n        },\n        SchemaName = \"birthday\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/googleworkspace/googleworkspace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := googleworkspace.NewSchema(ctx, \"birthday\", &googleworkspace.SchemaArgs{\n\t\t\tFields: googleworkspace.SchemaFieldArray{\n\t\t\t\t&googleworkspace.SchemaFieldArgs{\n\t\t\t\t\tFieldName: pulumi.String(\"birthday\"),\n\t\t\t\t\tFieldType: pulumi.String(\"DATE\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSchemaName: pulumi.String(\"birthday\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.googleworkspace.Schema;\nimport com.pulumi.googleworkspace.SchemaArgs;\nimport com.pulumi.googleworkspace.inputs.SchemaFieldArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var birthday = new Schema(\"birthday\", SchemaArgs.builder()\n            .fields(SchemaFieldArgs.builder()\n                .fieldName(\"birthday\")\n                .fieldType(\"DATE\")\n                .build())\n            .schemaName(\"birthday\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  birthday:\n    type: googleworkspace:Schema\n    properties:\n      fields:\n        - fieldName: birthday\n          fieldType: DATE\n      schemaName: birthday\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n```sh\n$ pulumi import googleworkspace:index/schema:Schema birthday Ab0C_DEFGhIJKLmNopQ1Rs==\n```\n\n",
      "properties": {
        "displayName": {
          "type": "string",
          "description": "Display name for the schema.\n"
        },
        "etag": {
          "type": "string",
          "description": "ETag of the resource.\n"
        },
        "fields": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FSchemaField:SchemaField"
          },
          "description": "A list of fields in the schema.\n"
        },
        "schemaId": {
          "type": "string",
          "description": "The unique identifier of the schema.\n"
        },
        "schemaName": {
          "type": "string",
          "description": "The schema's name.\n"
        },
        "timeouts": {
          "$ref": "#/types/googleworkspace:index%2FSchemaTimeouts:SchemaTimeouts"
        }
      },
      "type": "object",
      "required": [
        "displayName",
        "etag",
        "fields",
        "schemaId",
        "schemaName"
      ],
      "inputProperties": {
        "displayName": {
          "type": "string",
          "description": "Display name for the schema.\n"
        },
        "fields": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FSchemaField:SchemaField"
          },
          "description": "A list of fields in the schema.\n"
        },
        "schemaName": {
          "type": "string",
          "description": "The schema's name.\n"
        },
        "timeouts": {
          "$ref": "#/types/googleworkspace:index%2FSchemaTimeouts:SchemaTimeouts"
        }
      },
      "requiredInputs": [
        "fields",
        "schemaName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Schema resources.\n",
        "properties": {
          "displayName": {
            "type": "string",
            "description": "Display name for the schema.\n"
          },
          "etag": {
            "type": "string",
            "description": "ETag of the resource.\n"
          },
          "fields": {
            "type": "array",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FSchemaField:SchemaField"
            },
            "description": "A list of fields in the schema.\n"
          },
          "schemaId": {
            "type": "string",
            "description": "The unique identifier of the schema.\n"
          },
          "schemaName": {
            "type": "string",
            "description": "The schema's name.\n"
          },
          "timeouts": {
            "$ref": "#/types/googleworkspace:index%2FSchemaTimeouts:SchemaTimeouts"
          }
        },
        "type": "object"
      }
    },
    "googleworkspace:index/user:User": {
      "description": "User resource manages Google Workspace Users. User resides under the `https://www.googleapis.com/auth/admin.directory.user` client scope.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as googleworkspace from \"@pulumi/googleworkspace\";\n\nconst birthday = new googleworkspace.Schema(\"birthday\", {\n    schemaName: \"birthday\",\n    fields: [\n        {\n            fieldName: \"birthday\",\n            fieldType: \"DATE\",\n        },\n        {\n            fieldName: \"favorite-numbers\",\n            fieldType: \"INT64\",\n            multiValued: true,\n            numericIndexingSpec: {\n                minValue: 1,\n                maxValue: 100,\n            },\n        },\n    ],\n});\nconst dwight = new googleworkspace.User(\"dwight\", {\n    primaryEmail: \"dwight.schrute@example.com\",\n    password: \"34819d7beeabb9260a5c854bc85b3e44\",\n    hashFunction: \"MD5\",\n    name: {\n        familyName: \"Schrute\",\n        givenName: \"Dwight\",\n    },\n    aliases: [\"assistant_to_regional_manager@example.com\"],\n    emails: [{\n        address: \"dwight.schrute.dunder.mifflin@example.com\",\n        type: \"work\",\n    }],\n    relations: [{\n        type: \"assistant\",\n        value: \"Michael Scott\",\n    }],\n    addresses: [{\n        country: \"USA\",\n        countryCode: \"US\",\n        locality: \"Scranton\",\n        poBox: \"123\",\n        postalCode: \"18508\",\n        region: \"PA\",\n        streetAddress: \"123 Dunder Mifflin Pkwy\",\n        type: \"work\",\n    }],\n    organizations: [{\n        department: \"sales\",\n        location: \"Scranton\",\n        name: \"Dunder Mifflin\",\n        primary: true,\n        symbol: \"DUMI\",\n        title: \"member\",\n        type: \"work\",\n    }],\n    phones: [\n        {\n            type: \"home\",\n            value: \"555-123-7890\",\n        },\n        {\n            type: \"work\",\n            primary: true,\n            value: \"555-123-0987\",\n        },\n    ],\n    keywords: [{\n        type: \"occupation\",\n        value: \"salesperson\",\n    }],\n    customSchemas: [{\n        schemaName: birthday.schemaName,\n        schemaValues: {\n            birthday: JSON.stringify(\"1970-01-20\"),\n            \"favorite-numbers\": JSON.stringify([\n                1,\n                2,\n                3,\n            ]),\n        },\n    }],\n    recoveryEmail: \"dwightkschrute@example.com\",\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_googleworkspace as googleworkspace\n\nbirthday = googleworkspace.Schema(\"birthday\",\n    schema_name=\"birthday\",\n    fields=[\n        {\n            \"field_name\": \"birthday\",\n            \"field_type\": \"DATE\",\n        },\n        {\n            \"field_name\": \"favorite-numbers\",\n            \"field_type\": \"INT64\",\n            \"multi_valued\": True,\n            \"numeric_indexing_spec\": {\n                \"min_value\": 1,\n                \"max_value\": 100,\n            },\n        },\n    ])\ndwight = googleworkspace.User(\"dwight\",\n    primary_email=\"dwight.schrute@example.com\",\n    password=\"34819d7beeabb9260a5c854bc85b3e44\",\n    hash_function=\"MD5\",\n    name={\n        \"family_name\": \"Schrute\",\n        \"given_name\": \"Dwight\",\n    },\n    aliases=[\"assistant_to_regional_manager@example.com\"],\n    emails=[{\n        \"address\": \"dwight.schrute.dunder.mifflin@example.com\",\n        \"type\": \"work\",\n    }],\n    relations=[{\n        \"type\": \"assistant\",\n        \"value\": \"Michael Scott\",\n    }],\n    addresses=[{\n        \"country\": \"USA\",\n        \"country_code\": \"US\",\n        \"locality\": \"Scranton\",\n        \"po_box\": \"123\",\n        \"postal_code\": \"18508\",\n        \"region\": \"PA\",\n        \"street_address\": \"123 Dunder Mifflin Pkwy\",\n        \"type\": \"work\",\n    }],\n    organizations=[{\n        \"department\": \"sales\",\n        \"location\": \"Scranton\",\n        \"name\": \"Dunder Mifflin\",\n        \"primary\": True,\n        \"symbol\": \"DUMI\",\n        \"title\": \"member\",\n        \"type\": \"work\",\n    }],\n    phones=[\n        {\n            \"type\": \"home\",\n            \"value\": \"555-123-7890\",\n        },\n        {\n            \"type\": \"work\",\n            \"primary\": True,\n            \"value\": \"555-123-0987\",\n        },\n    ],\n    keywords=[{\n        \"type\": \"occupation\",\n        \"value\": \"salesperson\",\n    }],\n    custom_schemas=[{\n        \"schema_name\": birthday.schema_name,\n        \"schema_values\": {\n            \"birthday\": json.dumps(\"1970-01-20\"),\n            \"favorite-numbers\": json.dumps([\n                1,\n                2,\n                3,\n            ]),\n        },\n    }],\n    recovery_email=\"dwightkschrute@example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Googleworkspace = Pulumi.Googleworkspace;\n\nreturn await Deployment.RunAsync(() => \n{\n    var birthday = new Googleworkspace.Schema(\"birthday\", new()\n    {\n        SchemaName = \"birthday\",\n        Fields = new[]\n        {\n            new Googleworkspace.Inputs.SchemaFieldArgs\n            {\n                FieldName = \"birthday\",\n                FieldType = \"DATE\",\n            },\n            new Googleworkspace.Inputs.SchemaFieldArgs\n            {\n                FieldName = \"favorite-numbers\",\n                FieldType = \"INT64\",\n                MultiValued = true,\n                NumericIndexingSpec = new Googleworkspace.Inputs.SchemaFieldNumericIndexingSpecArgs\n                {\n                    MinValue = 1,\n                    MaxValue = 100,\n                },\n            },\n        },\n    });\n\n    var dwight = new Googleworkspace.User(\"dwight\", new()\n    {\n        PrimaryEmail = \"dwight.schrute@example.com\",\n        Password = \"34819d7beeabb9260a5c854bc85b3e44\",\n        HashFunction = \"MD5\",\n        Name = new Googleworkspace.Inputs.UserNameArgs\n        {\n            FamilyName = \"Schrute\",\n            GivenName = \"Dwight\",\n        },\n        Aliases = new[]\n        {\n            \"assistant_to_regional_manager@example.com\",\n        },\n        Emails = new[]\n        {\n            new Googleworkspace.Inputs.UserEmailArgs\n            {\n                Address = \"dwight.schrute.dunder.mifflin@example.com\",\n                Type = \"work\",\n            },\n        },\n        Relations = new[]\n        {\n            new Googleworkspace.Inputs.UserRelationArgs\n            {\n                Type = \"assistant\",\n                Value = \"Michael Scott\",\n            },\n        },\n        Addresses = new[]\n        {\n            new Googleworkspace.Inputs.UserAddressArgs\n            {\n                Country = \"USA\",\n                CountryCode = \"US\",\n                Locality = \"Scranton\",\n                PoBox = \"123\",\n                PostalCode = \"18508\",\n                Region = \"PA\",\n                StreetAddress = \"123 Dunder Mifflin Pkwy\",\n                Type = \"work\",\n            },\n        },\n        Organizations = new[]\n        {\n            new Googleworkspace.Inputs.UserOrganizationArgs\n            {\n                Department = \"sales\",\n                Location = \"Scranton\",\n                Name = \"Dunder Mifflin\",\n                Primary = true,\n                Symbol = \"DUMI\",\n                Title = \"member\",\n                Type = \"work\",\n            },\n        },\n        Phones = new[]\n        {\n            new Googleworkspace.Inputs.UserPhoneArgs\n            {\n                Type = \"home\",\n                Value = \"555-123-7890\",\n            },\n            new Googleworkspace.Inputs.UserPhoneArgs\n            {\n                Type = \"work\",\n                Primary = true,\n                Value = \"555-123-0987\",\n            },\n        },\n        Keywords = new[]\n        {\n            new Googleworkspace.Inputs.UserKeywordArgs\n            {\n                Type = \"occupation\",\n                Value = \"salesperson\",\n            },\n        },\n        CustomSchemas = new[]\n        {\n            new Googleworkspace.Inputs.UserCustomSchemaArgs\n            {\n                SchemaName = birthday.SchemaName,\n                SchemaValues = \n                {\n                    { \"birthday\", JsonSerializer.Serialize(\"1970-01-20\") },\n                    { \"favorite-numbers\", JsonSerializer.Serialize(new object?[]\n                    {\n                        1,\n                        2,\n                        3,\n                    }) },\n                },\n            },\n        },\n        RecoveryEmail = \"dwightkschrute@example.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/googleworkspace/googleworkspace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbirthday, err := googleworkspace.NewSchema(ctx, \"birthday\", &googleworkspace.SchemaArgs{\n\t\t\tSchemaName: pulumi.String(\"birthday\"),\n\t\t\tFields: googleworkspace.SchemaFieldArray{\n\t\t\t\t&googleworkspace.SchemaFieldArgs{\n\t\t\t\t\tFieldName: pulumi.String(\"birthday\"),\n\t\t\t\t\tFieldType: pulumi.String(\"DATE\"),\n\t\t\t\t},\n\t\t\t\t&googleworkspace.SchemaFieldArgs{\n\t\t\t\t\tFieldName:   pulumi.String(\"favorite-numbers\"),\n\t\t\t\t\tFieldType:   pulumi.String(\"INT64\"),\n\t\t\t\t\tMultiValued: pulumi.Bool(true),\n\t\t\t\t\tNumericIndexingSpec: &googleworkspace.SchemaFieldNumericIndexingSpecArgs{\n\t\t\t\t\t\tMinValue: pulumi.Float64(1),\n\t\t\t\t\t\tMaxValue: pulumi.Float64(100),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(\"1970-01-20\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\ttmpJSON1, err := json.Marshal([]float64{\n\t\t\t1,\n\t\t\t2,\n\t\t\t3,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\t_, err = googleworkspace.NewUser(ctx, \"dwight\", &googleworkspace.UserArgs{\n\t\t\tPrimaryEmail: pulumi.String(\"dwight.schrute@example.com\"),\n\t\t\tPassword:     pulumi.String(\"34819d7beeabb9260a5c854bc85b3e44\"),\n\t\t\tHashFunction: pulumi.String(\"MD5\"),\n\t\t\tName: &googleworkspace.UserNameArgs{\n\t\t\t\tFamilyName: pulumi.String(\"Schrute\"),\n\t\t\t\tGivenName:  pulumi.String(\"Dwight\"),\n\t\t\t},\n\t\t\tAliases: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"assistant_to_regional_manager@example.com\"),\n\t\t\t},\n\t\t\tEmails: googleworkspace.UserEmailArray{\n\t\t\t\t&googleworkspace.UserEmailArgs{\n\t\t\t\t\tAddress: pulumi.String(\"dwight.schrute.dunder.mifflin@example.com\"),\n\t\t\t\t\tType:    pulumi.String(\"work\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRelations: googleworkspace.UserRelationArray{\n\t\t\t\t&googleworkspace.UserRelationArgs{\n\t\t\t\t\tType:  pulumi.String(\"assistant\"),\n\t\t\t\t\tValue: pulumi.String(\"Michael Scott\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAddresses: googleworkspace.UserAddressArray{\n\t\t\t\t&googleworkspace.UserAddressArgs{\n\t\t\t\t\tCountry:       pulumi.String(\"USA\"),\n\t\t\t\t\tCountryCode:   pulumi.String(\"US\"),\n\t\t\t\t\tLocality:      pulumi.String(\"Scranton\"),\n\t\t\t\t\tPoBox:         pulumi.String(\"123\"),\n\t\t\t\t\tPostalCode:    pulumi.String(\"18508\"),\n\t\t\t\t\tRegion:        pulumi.String(\"PA\"),\n\t\t\t\t\tStreetAddress: pulumi.String(\"123 Dunder Mifflin Pkwy\"),\n\t\t\t\t\tType:          pulumi.String(\"work\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOrganizations: googleworkspace.UserOrganizationArray{\n\t\t\t\t&googleworkspace.UserOrganizationArgs{\n\t\t\t\t\tDepartment: pulumi.String(\"sales\"),\n\t\t\t\t\tLocation:   pulumi.String(\"Scranton\"),\n\t\t\t\t\tName:       pulumi.String(\"Dunder Mifflin\"),\n\t\t\t\t\tPrimary:    pulumi.Bool(true),\n\t\t\t\t\tSymbol:     pulumi.String(\"DUMI\"),\n\t\t\t\t\tTitle:      pulumi.String(\"member\"),\n\t\t\t\t\tType:       pulumi.String(\"work\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPhones: googleworkspace.UserPhoneArray{\n\t\t\t\t&googleworkspace.UserPhoneArgs{\n\t\t\t\t\tType:  pulumi.String(\"home\"),\n\t\t\t\t\tValue: pulumi.String(\"555-123-7890\"),\n\t\t\t\t},\n\t\t\t\t&googleworkspace.UserPhoneArgs{\n\t\t\t\t\tType:    pulumi.String(\"work\"),\n\t\t\t\t\tPrimary: pulumi.Bool(true),\n\t\t\t\t\tValue:   pulumi.String(\"555-123-0987\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tKeywords: googleworkspace.UserKeywordArray{\n\t\t\t\t&googleworkspace.UserKeywordArgs{\n\t\t\t\t\tType:  pulumi.String(\"occupation\"),\n\t\t\t\t\tValue: pulumi.String(\"salesperson\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCustomSchemas: googleworkspace.UserCustomSchemaArray{\n\t\t\t\t&googleworkspace.UserCustomSchemaArgs{\n\t\t\t\t\tSchemaName: birthday.SchemaName,\n\t\t\t\t\tSchemaValues: pulumi.StringMap{\n\t\t\t\t\t\t\"birthday\":         pulumi.String(json0),\n\t\t\t\t\t\t\"favorite-numbers\": pulumi.String(json1),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tRecoveryEmail: pulumi.String(\"dwightkschrute@example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.googleworkspace.Schema;\nimport com.pulumi.googleworkspace.SchemaArgs;\nimport com.pulumi.googleworkspace.inputs.SchemaFieldArgs;\nimport com.pulumi.googleworkspace.inputs.SchemaFieldNumericIndexingSpecArgs;\nimport com.pulumi.googleworkspace.User;\nimport com.pulumi.googleworkspace.UserArgs;\nimport com.pulumi.googleworkspace.inputs.UserNameArgs;\nimport com.pulumi.googleworkspace.inputs.UserEmailArgs;\nimport com.pulumi.googleworkspace.inputs.UserRelationArgs;\nimport com.pulumi.googleworkspace.inputs.UserAddressArgs;\nimport com.pulumi.googleworkspace.inputs.UserOrganizationArgs;\nimport com.pulumi.googleworkspace.inputs.UserPhoneArgs;\nimport com.pulumi.googleworkspace.inputs.UserKeywordArgs;\nimport com.pulumi.googleworkspace.inputs.UserCustomSchemaArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var birthday = new Schema(\"birthday\", SchemaArgs.builder()\n            .schemaName(\"birthday\")\n            .fields(            \n                SchemaFieldArgs.builder()\n                    .fieldName(\"birthday\")\n                    .fieldType(\"DATE\")\n                    .build(),\n                SchemaFieldArgs.builder()\n                    .fieldName(\"favorite-numbers\")\n                    .fieldType(\"INT64\")\n                    .multiValued(true)\n                    .numericIndexingSpec(SchemaFieldNumericIndexingSpecArgs.builder()\n                        .minValue(1)\n                        .maxValue(100)\n                        .build())\n                    .build())\n            .build());\n\n        var dwight = new User(\"dwight\", UserArgs.builder()\n            .primaryEmail(\"dwight.schrute@example.com\")\n            .password(\"34819d7beeabb9260a5c854bc85b3e44\")\n            .hashFunction(\"MD5\")\n            .name(UserNameArgs.builder()\n                .familyName(\"Schrute\")\n                .givenName(\"Dwight\")\n                .build())\n            .aliases(\"assistant_to_regional_manager@example.com\")\n            .emails(UserEmailArgs.builder()\n                .address(\"dwight.schrute.dunder.mifflin@example.com\")\n                .type(\"work\")\n                .build())\n            .relations(UserRelationArgs.builder()\n                .type(\"assistant\")\n                .value(\"Michael Scott\")\n                .build())\n            .addresses(UserAddressArgs.builder()\n                .country(\"USA\")\n                .countryCode(\"US\")\n                .locality(\"Scranton\")\n                .poBox(\"123\")\n                .postalCode(\"18508\")\n                .region(\"PA\")\n                .streetAddress(\"123 Dunder Mifflin Pkwy\")\n                .type(\"work\")\n                .build())\n            .organizations(UserOrganizationArgs.builder()\n                .department(\"sales\")\n                .location(\"Scranton\")\n                .name(\"Dunder Mifflin\")\n                .primary(true)\n                .symbol(\"DUMI\")\n                .title(\"member\")\n                .type(\"work\")\n                .build())\n            .phones(            \n                UserPhoneArgs.builder()\n                    .type(\"home\")\n                    .value(\"555-123-7890\")\n                    .build(),\n                UserPhoneArgs.builder()\n                    .type(\"work\")\n                    .primary(true)\n                    .value(\"555-123-0987\")\n                    .build())\n            .keywords(UserKeywordArgs.builder()\n                .type(\"occupation\")\n                .value(\"salesperson\")\n                .build())\n            .customSchemas(UserCustomSchemaArgs.builder()\n                .schemaName(birthday.schemaName())\n                .schemaValues(Map.ofEntries(\n                    Map.entry(\"birthday\", serializeJson(\n                        \"1970-01-20\")),\n                    Map.entry(\"favorite-numbers\", serializeJson(\n                        jsonArray(\n                            1, \n                            2, \n                            3\n                        )))\n                ))\n                .build())\n            .recoveryEmail(\"dwightkschrute@example.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  birthday:\n    type: googleworkspace:Schema\n    properties:\n      schemaName: birthday\n      fields:\n        - fieldName: birthday\n          fieldType: DATE\n        - fieldName: favorite-numbers\n          fieldType: INT64\n          multiValued: true\n          numericIndexingSpec:\n            minValue: 1\n            maxValue: 100\n  dwight:\n    type: googleworkspace:User\n    properties:\n      primaryEmail: dwight.schrute@example.com\n      password: 34819d7beeabb9260a5c854bc85b3e44\n      hashFunction: MD5\n      name:\n        familyName: Schrute\n        givenName: Dwight\n      aliases:\n        - assistant_to_regional_manager@example.com\n      emails:\n        - address: dwight.schrute.dunder.mifflin@example.com\n          type: work\n      relations:\n        - type: assistant\n          value: Michael Scott\n      addresses:\n        - country: USA\n          countryCode: US\n          locality: Scranton\n          poBox: '123'\n          postalCode: '18508'\n          region: PA\n          streetAddress: 123 Dunder Mifflin Pkwy\n          type: work\n      organizations:\n        - department: sales\n          location: Scranton\n          name: Dunder Mifflin\n          primary: true\n          symbol: DUMI\n          title: member\n          type: work\n      phones:\n        - type: home\n          value: 555-123-7890\n        - type: work\n          primary: true\n          value: 555-123-0987\n      keywords:\n        - type: occupation\n          value: salesperson\n      customSchemas:\n        - schemaName: ${birthday.schemaName}\n          schemaValues:\n            birthday:\n              fn::toJSON: 1970-01-20\n            favorite-numbers:\n              fn::toJSON:\n                - 1\n                - 2\n                - 3\n      recoveryEmail: dwightkschrute@example.com\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n```sh\n$ pulumi import googleworkspace:index/user:User dwight 123456789012345678901\n```\n\nor with email as id\n\n```sh\n$ pulumi import googleworkspace:index/user:User dwight dwight.schrute@example.com\n```\n\n",
      "properties": {
        "addresses": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserAddress:UserAddress"
          },
          "description": "A list of the user's addresses. The maximum allowed data size is 10Kb.\n"
        },
        "agreedToTerms": {
          "type": "boolean",
          "description": "This property is true if the user has completed an initial login and accepted the Terms of Service agreement.\n"
        },
        "aliases": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "asps.list of the user's alias email addresses.\n"
        },
        "archived": {
          "type": "boolean",
          "description": "Indicates if user is archived.\n"
        },
        "changePasswordAtNextLogin": {
          "type": "boolean",
          "description": "Indicates if the user is forced to change their password at next login. This setting doesn't apply when the user signs\nin via a third-party identity provider.\n"
        },
        "creationTime": {
          "type": "string",
          "description": "The time the user's account was created. The value is in ISO 8601 date and time format. The time is the complete date\nplus hours, minutes, and seconds in the form YYYY-MM-DDThh:mm:ssTZD. For example, 2010-04-05T17:30:04+01:00.\n"
        },
        "customSchemas": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserCustomSchema:UserCustomSchema"
          },
          "description": "Custom fields of the user.\n"
        },
        "customerId": {
          "type": "string",
          "description": "The customer ID to retrieve all account users. You can use the alias my_customer to represent your account's customerId.\nAs a reseller administrator, you can use the resold customer account's customerId. To get a customerId, use the\naccount's primary domain in the domain parameter of a users.list request.\n"
        },
        "deletionTime": {
          "type": "string",
          "description": "The time the user's account was deleted. The value is in ISO 8601 date and time format The time is the complete date\nplus hours, minutes, and seconds in the form YYYY-MM-DDThh:mm:ssTZD. For example 2010-04-05T17:30:04+01:00.\n"
        },
        "emails": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserEmail:UserEmail"
          },
          "description": "A list of the user's email addresses. The maximum allowed data size is 10Kb.\n"
        },
        "etag": {
          "type": "string",
          "description": "ETag of the resource.\n"
        },
        "externalIds": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserExternalId:UserExternalId"
          },
          "description": "A list of external IDs for the user, such as an employee or network ID. The maximum allowed data size is 2Kb.\n"
        },
        "hashFunction": {
          "type": "string",
          "description": "Stores the hash format of the password property. We recommend sending the password property value as a base 16 bit\nhexadecimal-encoded hash value. Set the hashFunction values as either the SHA-1, MD5, or crypt hash format.\n"
        },
        "ims": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserIm:UserIm"
          },
          "description": "The user's Instant Messenger (IM) accounts. A user account can have multiple ims properties. But, only one of these ims\nproperties can be the primary IM contact. The maximum allowed data size is 2Kb.\n"
        },
        "includeInGlobalAddressList": {
          "type": "boolean",
          "description": "Defaults to `true`. Indicates if the user's profile is visible in the Google Workspace global address list when the\ncontact sharing feature is enabled for the domain.\n"
        },
        "ipAllowlist": {
          "type": "boolean",
          "description": "If true, the user's IP address is added to the allow list.\n"
        },
        "isAdmin": {
          "type": "boolean",
          "description": "Indicates a user with super admininistrator privileges.\n"
        },
        "isDelegatedAdmin": {
          "type": "boolean",
          "description": "Indicates if the user is a delegated administrator.\n"
        },
        "isEnforcedIn2StepVerification": {
          "type": "boolean",
          "description": "Is 2-step verification enforced.\n"
        },
        "isEnrolledIn2StepVerification": {
          "type": "boolean",
          "description": "Is enrolled in 2-step verification.\n"
        },
        "isMailboxSetup": {
          "type": "boolean",
          "description": "Indicates if the user's Google mailbox is created. This property is only applicable if the user has been assigned a\nGmail license.\n"
        },
        "keywords": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserKeyword:UserKeyword"
          },
          "description": "A list of the user's keywords. The maximum allowed data size is 1Kb.\n"
        },
        "languages": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserLanguage:UserLanguage"
          },
          "description": "A list of the user's languages. The maximum allowed data size is 1Kb.\n"
        },
        "lastLoginTime": {
          "type": "string",
          "description": "The last time the user logged into the user's account. The value is in ISO 8601 date and time format. The time is the\ncomplete date plus hours, minutes, and seconds in the form YYYY-MM-DDThh:mm:ssTZD. For example,\n2010-04-05T17:30:04+01:00.\n"
        },
        "locations": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserLocation:UserLocation"
          },
          "description": "A list of the user's locations. The maximum allowed data size is 10Kb.\n"
        },
        "name": {
          "$ref": "#/types/googleworkspace:index%2FUserName:UserName",
          "description": "Holds the given and family names of the user, and the read-only fullName value. The maximum number of characters in the\ngivenName and in the familyName values is 60. In addition, name values support unicode/UTF-8 characters, and can contain\nspaces, letters (a-z), numbers (0-9), dashes (-), forward slashes (/), and periods (.). Maximum allowed data size for\nthis field is 1Kb.\n"
        },
        "nonEditableAliases": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "asps.list of the user's non-editable alias email addresses. These are typically outside the account's primary domain or\nsub-domain.\n"
        },
        "orgUnitPath": {
          "type": "string",
          "description": "The full path of the parent organization associated with the user. If the parent organization is the top-level, it is\nrepresented as a forward slash (/).\n"
        },
        "organizations": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserOrganization:UserOrganization"
          },
          "description": "A list of organizations the user belongs to. The maximum allowed data size is 10Kb.\n"
        },
        "password": {
          "type": "string",
          "description": "Stores the password for the user account. A password can contain any combination of ASCII characters. A minimum of 8\ncharacters is required. The maximum length is 100 characters. As the API does not return the value of password, this\nfield is write-only, and the value stored in the state will be what is provided in the configuration. The field is\nrequired on create and will be empty on import.\n",
          "secret": true
        },
        "phones": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserPhone:UserPhone"
          },
          "description": "A list of the user's phone numbers. The maximum allowed data size is 1Kb.\n"
        },
        "posixAccounts": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserPosixAccount:UserPosixAccount"
          },
          "description": "A list of POSIX account information for the user.\n"
        },
        "primaryEmail": {
          "type": "string",
          "description": "The user's primary email address. The primaryEmail must be unique and cannot be an alias of another user.\n"
        },
        "recoveryEmail": {
          "type": "string",
          "description": "Recovery email of the user.\n"
        },
        "recoveryPhone": {
          "type": "string",
          "description": "Recovery phone of the user. The phone number must be in the E.164 format, starting with the plus sign (+). Example:\n+16506661212.\n"
        },
        "relations": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserRelation:UserRelation"
          },
          "description": "A list of the user's relationships to other users. The maximum allowed data size for this field is 2Kb.\n"
        },
        "sshPublicKeys": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserSshPublicKey:UserSshPublicKey"
          },
          "description": "A list of SSH public keys. The maximum allowed data size is 10Kb.\n"
        },
        "suspended": {
          "type": "boolean",
          "description": "Indicates if user is suspended.\n"
        },
        "suspensionReason": {
          "type": "string",
          "description": "Has the reason a user account is suspended either by the administrator or by Google at the time of suspension. The\nproperty is returned only if the suspended property is true.\n"
        },
        "thumbnailPhotoEtag": {
          "type": "string",
          "description": "ETag of the user's photo\n"
        },
        "thumbnailPhotoUrl": {
          "type": "string",
          "description": "Photo Url of the user.\n"
        },
        "timeouts": {
          "$ref": "#/types/googleworkspace:index%2FUserTimeouts:UserTimeouts"
        },
        "websites": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserWebsite:UserWebsite"
          },
          "description": "A list of the user's websites. The maximum allowed data size is 2Kb.\n"
        }
      },
      "type": "object",
      "required": [
        "agreedToTerms",
        "creationTime",
        "customerId",
        "deletionTime",
        "etag",
        "isAdmin",
        "isDelegatedAdmin",
        "isEnforcedIn2StepVerification",
        "isEnrolledIn2StepVerification",
        "isMailboxSetup",
        "lastLoginTime",
        "name",
        "nonEditableAliases",
        "orgUnitPath",
        "primaryEmail",
        "suspensionReason",
        "thumbnailPhotoEtag",
        "thumbnailPhotoUrl"
      ],
      "inputProperties": {
        "addresses": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserAddress:UserAddress"
          },
          "description": "A list of the user's addresses. The maximum allowed data size is 10Kb.\n"
        },
        "aliases": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "asps.list of the user's alias email addresses.\n"
        },
        "archived": {
          "type": "boolean",
          "description": "Indicates if user is archived.\n"
        },
        "changePasswordAtNextLogin": {
          "type": "boolean",
          "description": "Indicates if the user is forced to change their password at next login. This setting doesn't apply when the user signs\nin via a third-party identity provider.\n"
        },
        "customSchemas": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserCustomSchema:UserCustomSchema"
          },
          "description": "Custom fields of the user.\n"
        },
        "emails": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserEmail:UserEmail"
          },
          "description": "A list of the user's email addresses. The maximum allowed data size is 10Kb.\n"
        },
        "externalIds": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserExternalId:UserExternalId"
          },
          "description": "A list of external IDs for the user, such as an employee or network ID. The maximum allowed data size is 2Kb.\n"
        },
        "hashFunction": {
          "type": "string",
          "description": "Stores the hash format of the password property. We recommend sending the password property value as a base 16 bit\nhexadecimal-encoded hash value. Set the hashFunction values as either the SHA-1, MD5, or crypt hash format.\n"
        },
        "ims": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserIm:UserIm"
          },
          "description": "The user's Instant Messenger (IM) accounts. A user account can have multiple ims properties. But, only one of these ims\nproperties can be the primary IM contact. The maximum allowed data size is 2Kb.\n"
        },
        "includeInGlobalAddressList": {
          "type": "boolean",
          "description": "Defaults to `true`. Indicates if the user's profile is visible in the Google Workspace global address list when the\ncontact sharing feature is enabled for the domain.\n"
        },
        "ipAllowlist": {
          "type": "boolean",
          "description": "If true, the user's IP address is added to the allow list.\n"
        },
        "isAdmin": {
          "type": "boolean",
          "description": "Indicates a user with super admininistrator privileges.\n"
        },
        "keywords": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserKeyword:UserKeyword"
          },
          "description": "A list of the user's keywords. The maximum allowed data size is 1Kb.\n"
        },
        "languages": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserLanguage:UserLanguage"
          },
          "description": "A list of the user's languages. The maximum allowed data size is 1Kb.\n"
        },
        "locations": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserLocation:UserLocation"
          },
          "description": "A list of the user's locations. The maximum allowed data size is 10Kb.\n"
        },
        "name": {
          "$ref": "#/types/googleworkspace:index%2FUserName:UserName",
          "description": "Holds the given and family names of the user, and the read-only fullName value. The maximum number of characters in the\ngivenName and in the familyName values is 60. In addition, name values support unicode/UTF-8 characters, and can contain\nspaces, letters (a-z), numbers (0-9), dashes (-), forward slashes (/), and periods (.). Maximum allowed data size for\nthis field is 1Kb.\n"
        },
        "orgUnitPath": {
          "type": "string",
          "description": "The full path of the parent organization associated with the user. If the parent organization is the top-level, it is\nrepresented as a forward slash (/).\n"
        },
        "organizations": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserOrganization:UserOrganization"
          },
          "description": "A list of organizations the user belongs to. The maximum allowed data size is 10Kb.\n"
        },
        "password": {
          "type": "string",
          "description": "Stores the password for the user account. A password can contain any combination of ASCII characters. A minimum of 8\ncharacters is required. The maximum length is 100 characters. As the API does not return the value of password, this\nfield is write-only, and the value stored in the state will be what is provided in the configuration. The field is\nrequired on create and will be empty on import.\n",
          "secret": true
        },
        "phones": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserPhone:UserPhone"
          },
          "description": "A list of the user's phone numbers. The maximum allowed data size is 1Kb.\n"
        },
        "posixAccounts": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserPosixAccount:UserPosixAccount"
          },
          "description": "A list of POSIX account information for the user.\n"
        },
        "primaryEmail": {
          "type": "string",
          "description": "The user's primary email address. The primaryEmail must be unique and cannot be an alias of another user.\n"
        },
        "recoveryEmail": {
          "type": "string",
          "description": "Recovery email of the user.\n"
        },
        "recoveryPhone": {
          "type": "string",
          "description": "Recovery phone of the user. The phone number must be in the E.164 format, starting with the plus sign (+). Example:\n+16506661212.\n"
        },
        "relations": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserRelation:UserRelation"
          },
          "description": "A list of the user's relationships to other users. The maximum allowed data size for this field is 2Kb.\n"
        },
        "sshPublicKeys": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserSshPublicKey:UserSshPublicKey"
          },
          "description": "A list of SSH public keys. The maximum allowed data size is 10Kb.\n"
        },
        "suspended": {
          "type": "boolean",
          "description": "Indicates if user is suspended.\n"
        },
        "timeouts": {
          "$ref": "#/types/googleworkspace:index%2FUserTimeouts:UserTimeouts"
        },
        "websites": {
          "type": "array",
          "items": {
            "$ref": "#/types/googleworkspace:index%2FUserWebsite:UserWebsite"
          },
          "description": "A list of the user's websites. The maximum allowed data size is 2Kb.\n"
        }
      },
      "requiredInputs": [
        "name",
        "primaryEmail"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering User resources.\n",
        "properties": {
          "addresses": {
            "type": "array",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FUserAddress:UserAddress"
            },
            "description": "A list of the user's addresses. The maximum allowed data size is 10Kb.\n"
          },
          "agreedToTerms": {
            "type": "boolean",
            "description": "This property is true if the user has completed an initial login and accepted the Terms of Service agreement.\n"
          },
          "aliases": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "asps.list of the user's alias email addresses.\n"
          },
          "archived": {
            "type": "boolean",
            "description": "Indicates if user is archived.\n"
          },
          "changePasswordAtNextLogin": {
            "type": "boolean",
            "description": "Indicates if the user is forced to change their password at next login. This setting doesn't apply when the user signs\nin via a third-party identity provider.\n"
          },
          "creationTime": {
            "type": "string",
            "description": "The time the user's account was created. The value is in ISO 8601 date and time format. The time is the complete date\nplus hours, minutes, and seconds in the form YYYY-MM-DDThh:mm:ssTZD. For example, 2010-04-05T17:30:04+01:00.\n"
          },
          "customSchemas": {
            "type": "array",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FUserCustomSchema:UserCustomSchema"
            },
            "description": "Custom fields of the user.\n"
          },
          "customerId": {
            "type": "string",
            "description": "The customer ID to retrieve all account users. You can use the alias my_customer to represent your account's customerId.\nAs a reseller administrator, you can use the resold customer account's customerId. To get a customerId, use the\naccount's primary domain in the domain parameter of a users.list request.\n"
          },
          "deletionTime": {
            "type": "string",
            "description": "The time the user's account was deleted. The value is in ISO 8601 date and time format The time is the complete date\nplus hours, minutes, and seconds in the form YYYY-MM-DDThh:mm:ssTZD. For example 2010-04-05T17:30:04+01:00.\n"
          },
          "emails": {
            "type": "array",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FUserEmail:UserEmail"
            },
            "description": "A list of the user's email addresses. The maximum allowed data size is 10Kb.\n"
          },
          "etag": {
            "type": "string",
            "description": "ETag of the resource.\n"
          },
          "externalIds": {
            "type": "array",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FUserExternalId:UserExternalId"
            },
            "description": "A list of external IDs for the user, such as an employee or network ID. The maximum allowed data size is 2Kb.\n"
          },
          "hashFunction": {
            "type": "string",
            "description": "Stores the hash format of the password property. We recommend sending the password property value as a base 16 bit\nhexadecimal-encoded hash value. Set the hashFunction values as either the SHA-1, MD5, or crypt hash format.\n"
          },
          "ims": {
            "type": "array",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FUserIm:UserIm"
            },
            "description": "The user's Instant Messenger (IM) accounts. A user account can have multiple ims properties. But, only one of these ims\nproperties can be the primary IM contact. The maximum allowed data size is 2Kb.\n"
          },
          "includeInGlobalAddressList": {
            "type": "boolean",
            "description": "Defaults to `true`. Indicates if the user's profile is visible in the Google Workspace global address list when the\ncontact sharing feature is enabled for the domain.\n"
          },
          "ipAllowlist": {
            "type": "boolean",
            "description": "If true, the user's IP address is added to the allow list.\n"
          },
          "isAdmin": {
            "type": "boolean",
            "description": "Indicates a user with super admininistrator privileges.\n"
          },
          "isDelegatedAdmin": {
            "type": "boolean",
            "description": "Indicates if the user is a delegated administrator.\n"
          },
          "isEnforcedIn2StepVerification": {
            "type": "boolean",
            "description": "Is 2-step verification enforced.\n"
          },
          "isEnrolledIn2StepVerification": {
            "type": "boolean",
            "description": "Is enrolled in 2-step verification.\n"
          },
          "isMailboxSetup": {
            "type": "boolean",
            "description": "Indicates if the user's Google mailbox is created. This property is only applicable if the user has been assigned a\nGmail license.\n"
          },
          "keywords": {
            "type": "array",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FUserKeyword:UserKeyword"
            },
            "description": "A list of the user's keywords. The maximum allowed data size is 1Kb.\n"
          },
          "languages": {
            "type": "array",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FUserLanguage:UserLanguage"
            },
            "description": "A list of the user's languages. The maximum allowed data size is 1Kb.\n"
          },
          "lastLoginTime": {
            "type": "string",
            "description": "The last time the user logged into the user's account. The value is in ISO 8601 date and time format. The time is the\ncomplete date plus hours, minutes, and seconds in the form YYYY-MM-DDThh:mm:ssTZD. For example,\n2010-04-05T17:30:04+01:00.\n"
          },
          "locations": {
            "type": "array",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FUserLocation:UserLocation"
            },
            "description": "A list of the user's locations. The maximum allowed data size is 10Kb.\n"
          },
          "name": {
            "$ref": "#/types/googleworkspace:index%2FUserName:UserName",
            "description": "Holds the given and family names of the user, and the read-only fullName value. The maximum number of characters in the\ngivenName and in the familyName values is 60. In addition, name values support unicode/UTF-8 characters, and can contain\nspaces, letters (a-z), numbers (0-9), dashes (-), forward slashes (/), and periods (.). Maximum allowed data size for\nthis field is 1Kb.\n"
          },
          "nonEditableAliases": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "asps.list of the user's non-editable alias email addresses. These are typically outside the account's primary domain or\nsub-domain.\n"
          },
          "orgUnitPath": {
            "type": "string",
            "description": "The full path of the parent organization associated with the user. If the parent organization is the top-level, it is\nrepresented as a forward slash (/).\n"
          },
          "organizations": {
            "type": "array",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FUserOrganization:UserOrganization"
            },
            "description": "A list of organizations the user belongs to. The maximum allowed data size is 10Kb.\n"
          },
          "password": {
            "type": "string",
            "description": "Stores the password for the user account. A password can contain any combination of ASCII characters. A minimum of 8\ncharacters is required. The maximum length is 100 characters. As the API does not return the value of password, this\nfield is write-only, and the value stored in the state will be what is provided in the configuration. The field is\nrequired on create and will be empty on import.\n",
            "secret": true
          },
          "phones": {
            "type": "array",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FUserPhone:UserPhone"
            },
            "description": "A list of the user's phone numbers. The maximum allowed data size is 1Kb.\n"
          },
          "posixAccounts": {
            "type": "array",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FUserPosixAccount:UserPosixAccount"
            },
            "description": "A list of POSIX account information for the user.\n"
          },
          "primaryEmail": {
            "type": "string",
            "description": "The user's primary email address. The primaryEmail must be unique and cannot be an alias of another user.\n"
          },
          "recoveryEmail": {
            "type": "string",
            "description": "Recovery email of the user.\n"
          },
          "recoveryPhone": {
            "type": "string",
            "description": "Recovery phone of the user. The phone number must be in the E.164 format, starting with the plus sign (+). Example:\n+16506661212.\n"
          },
          "relations": {
            "type": "array",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FUserRelation:UserRelation"
            },
            "description": "A list of the user's relationships to other users. The maximum allowed data size for this field is 2Kb.\n"
          },
          "sshPublicKeys": {
            "type": "array",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FUserSshPublicKey:UserSshPublicKey"
            },
            "description": "A list of SSH public keys. The maximum allowed data size is 10Kb.\n"
          },
          "suspended": {
            "type": "boolean",
            "description": "Indicates if user is suspended.\n"
          },
          "suspensionReason": {
            "type": "string",
            "description": "Has the reason a user account is suspended either by the administrator or by Google at the time of suspension. The\nproperty is returned only if the suspended property is true.\n"
          },
          "thumbnailPhotoEtag": {
            "type": "string",
            "description": "ETag of the user's photo\n"
          },
          "thumbnailPhotoUrl": {
            "type": "string",
            "description": "Photo Url of the user.\n"
          },
          "timeouts": {
            "$ref": "#/types/googleworkspace:index%2FUserTimeouts:UserTimeouts"
          },
          "websites": {
            "type": "array",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FUserWebsite:UserWebsite"
            },
            "description": "A list of the user's websites. The maximum allowed data size is 2Kb.\n"
          }
        },
        "type": "object"
      }
    }
  },
  "functions": {
    "googleworkspace:index/getChromePolicySchema:getChromePolicySchema": {
      "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as googleworkspace from \"@pulumi/googleworkspace\";\n\nconst example = googleworkspace.getChromePolicySchema({\n    schemaName: \"chrome.printers.AllowForUsers\",\n});\nexport const fieldDescriptions = example.then(example =\u003e example.fieldDescriptions);\n```\n```python\nimport pulumi\nimport pulumi_googleworkspace as googleworkspace\n\nexample = googleworkspace.get_chrome_policy_schema(schema_name=\"chrome.printers.AllowForUsers\")\npulumi.export(\"fieldDescriptions\", example.field_descriptions)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Googleworkspace = Pulumi.Googleworkspace;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Googleworkspace.GetChromePolicySchema.Invoke(new()\n    {\n        SchemaName = \"chrome.printers.AllowForUsers\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"fieldDescriptions\"] = example.Apply(getChromePolicySchemaResult =\u003e getChromePolicySchemaResult.FieldDescriptions),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/googleworkspace/googleworkspace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := googleworkspace.GetChromePolicySchema(ctx, \u0026googleworkspace.GetChromePolicySchemaArgs{\n\t\t\tSchemaName: \"chrome.printers.AllowForUsers\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"fieldDescriptions\", example.FieldDescriptions)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.googleworkspace.GoogleworkspaceFunctions;\nimport com.pulumi.googleworkspace.inputs.GetChromePolicySchemaArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = GoogleworkspaceFunctions.getChromePolicySchema(GetChromePolicySchemaArgs.builder()\n            .schemaName(\"chrome.printers.AllowForUsers\")\n            .build());\n\n        ctx.export(\"fieldDescriptions\", example.applyValue(getChromePolicySchemaResult -\u003e getChromePolicySchemaResult.fieldDescriptions()));\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: googleworkspace:getChromePolicySchema\n      arguments:\n        schemaName: chrome.printers.AllowForUsers\noutputs:\n  fieldDescriptions: ${example.fieldDescriptions}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getChromePolicySchema.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "schemaName": {
            "type": "string",
            "description": "The full qualified name of the policy schema\n"
          }
        },
        "type": "object",
        "required": [
          "schemaName"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getChromePolicySchema.\n",
        "properties": {
          "accessRestrictions": {
            "description": "Specific access restrictions related to this policy.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "additionalTargetKeyNames": {
            "description": "Additional key names that will be used to identify the target of the policy value. When specifying a policyTargetKey, each of the additional keys specified here will have to be included in the additionalTargetKeys map.\n",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FgetChromePolicySchemaAdditionalTargetKeyName:getChromePolicySchemaAdditionalTargetKeyName"
            },
            "type": "array"
          },
          "definitions": {
            "description": "Schema definition using proto descriptor.\n",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FgetChromePolicySchemaDefinition:getChromePolicySchemaDefinition"
            },
            "type": "array"
          },
          "fieldDescriptions": {
            "description": "Detailed description of each field that is part of the schema, represented as a JSON string.\n",
            "type": "string"
          },
          "id": {
            "description": "The ID of this resource.\n",
            "type": "string"
          },
          "notices": {
            "description": "Special notice messages related to setting certain values in certain fields in the schema.\n",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FgetChromePolicySchemaNotice:getChromePolicySchemaNotice"
            },
            "type": "array"
          },
          "policyDescription": {
            "description": "Description about the policy schema for user consumption.\n",
            "type": "string"
          },
          "schemaName": {
            "description": "The full qualified name of the policy schema\n",
            "type": "string"
          },
          "supportUri": {
            "description": "URI to related support article for this schema.\n",
            "type": "string"
          }
        },
        "required": [
          "accessRestrictions",
          "additionalTargetKeyNames",
          "definitions",
          "fieldDescriptions",
          "id",
          "notices",
          "policyDescription",
          "schemaName",
          "supportUri"
        ],
        "type": "object"
      }
    },
    "googleworkspace:index/getDomain:getDomain": {
      "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as googleworkspace from \"@pulumi/googleworkspace\";\n\nconst example = googleworkspace.getDomain({\n    domainName: \"example.com\",\n});\nexport const domainVerified = example.then(example =\u003e example.verified);\n```\n```python\nimport pulumi\nimport pulumi_googleworkspace as googleworkspace\n\nexample = googleworkspace.get_domain(domain_name=\"example.com\")\npulumi.export(\"domainVerified\", example.verified)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Googleworkspace = Pulumi.Googleworkspace;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Googleworkspace.GetDomain.Invoke(new()\n    {\n        DomainName = \"example.com\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"domainVerified\"] = example.Apply(getDomainResult =\u003e getDomainResult.Verified),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/googleworkspace/googleworkspace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := googleworkspace.LookupDomain(ctx, \u0026googleworkspace.LookupDomainArgs{\n\t\t\tDomainName: \"example.com\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"domainVerified\", example.Verified)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.googleworkspace.GoogleworkspaceFunctions;\nimport com.pulumi.googleworkspace.inputs.GetDomainArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = GoogleworkspaceFunctions.getDomain(GetDomainArgs.builder()\n            .domainName(\"example.com\")\n            .build());\n\n        ctx.export(\"domainVerified\", example.applyValue(getDomainResult -\u003e getDomainResult.verified()));\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: googleworkspace:getDomain\n      arguments:\n        domainName: example.com\noutputs:\n  domainVerified: ${example.verified}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDomain.\n",
        "properties": {
          "domainName": {
            "type": "string",
            "description": "The domain name of the customer.\n"
          }
        },
        "type": "object",
        "required": [
          "domainName"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getDomain.\n",
        "properties": {
          "creationTime": {
            "description": "Creation time of the domain. Expressed in Unix time format.\n",
            "type": "number"
          },
          "domainAliases": {
            "description": "asps.list of domain alias objects.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "domainName": {
            "description": "The domain name of the customer.\n",
            "type": "string"
          },
          "etag": {
            "description": "ETag of the resource.\n",
            "type": "string"
          },
          "id": {
            "description": "The ID of this resource.\n",
            "type": "string"
          },
          "isPrimary": {
            "description": "Indicates if the domain is a primary domain.\n",
            "type": "boolean"
          },
          "verified": {
            "description": "Indicates the verification state of a domain.\n",
            "type": "boolean"
          }
        },
        "required": [
          "creationTime",
          "domainAliases",
          "domainName",
          "etag",
          "id",
          "isPrimary",
          "verified"
        ],
        "type": "object"
      }
    },
    "googleworkspace:index/getDomainAlias:getDomainAlias": {
      "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as googleworkspace from \"@pulumi/googleworkspace\";\n\nexport = async () =\u003e {\n    const example = await googleworkspace.getDomainAlias({\n        domainAliasName: \"alias-example.com\",\n    });\n    return {\n        \"parent-domain\": example.parentDomainName,\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_googleworkspace as googleworkspace\n\nexample = googleworkspace.get_domain_alias(domain_alias_name=\"alias-example.com\")\npulumi.export(\"parent-domain\", example.parent_domain_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Googleworkspace = Pulumi.Googleworkspace;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Googleworkspace.GetDomainAlias.Invoke(new()\n    {\n        DomainAliasName = \"alias-example.com\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"parent-domain\"] = example.Apply(getDomainAliasResult =\u003e getDomainAliasResult.ParentDomainName),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/googleworkspace/googleworkspace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := googleworkspace.LookupDomainAlias(ctx, \u0026googleworkspace.LookupDomainAliasArgs{\n\t\t\tDomainAliasName: \"alias-example.com\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"parent-domain\", example.ParentDomainName)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.googleworkspace.GoogleworkspaceFunctions;\nimport com.pulumi.googleworkspace.inputs.GetDomainAliasArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = GoogleworkspaceFunctions.getDomainAlias(GetDomainAliasArgs.builder()\n            .domainAliasName(\"alias-example.com\")\n            .build());\n\n        ctx.export(\"parent-domain\", example.applyValue(getDomainAliasResult -\u003e getDomainAliasResult.parentDomainName()));\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: googleworkspace:getDomainAlias\n      arguments:\n        domainAliasName: alias-example.com\noutputs:\n  parent-domain: ${example.parentDomainName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDomainAlias.\n",
        "properties": {
          "domainAliasName": {
            "type": "string",
            "description": "The domain alias name.\n"
          }
        },
        "type": "object",
        "required": [
          "domainAliasName"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getDomainAlias.\n",
        "properties": {
          "creationTime": {
            "description": "Creation time of the domain alias.\n",
            "type": "number"
          },
          "domainAliasName": {
            "description": "The domain alias name.\n",
            "type": "string"
          },
          "etag": {
            "description": "ETag of the resource.\n",
            "type": "string"
          },
          "id": {
            "description": "The ID of this resource.\n",
            "type": "string"
          },
          "parentDomainName": {
            "description": "The parent domain name that the domain alias is associated with. This can either be a primary or secondary domain name within a customer.\n",
            "type": "string"
          },
          "verified": {
            "description": "Indicates the verification state of a domain alias.\n",
            "type": "boolean"
          }
        },
        "required": [
          "creationTime",
          "domainAliasName",
          "etag",
          "id",
          "parentDomainName",
          "verified"
        ],
        "type": "object"
      }
    },
    "googleworkspace:index/getGroup:getGroup": {
      "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as googleworkspace from \"@pulumi/googleworkspace\";\n\nconst sales = googleworkspace.getGroup({\n    email: \"sales@example.com\",\n});\nexport const groupName = sales.then(sales =\u003e sales.name);\n```\n```python\nimport pulumi\nimport pulumi_googleworkspace as googleworkspace\n\nsales = googleworkspace.get_group(email=\"sales@example.com\")\npulumi.export(\"groupName\", sales.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Googleworkspace = Pulumi.Googleworkspace;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var sales = Googleworkspace.GetGroup.Invoke(new()\n    {\n        Email = \"sales@example.com\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"groupName\"] = sales.Apply(getGroupResult =\u003e getGroupResult.Name),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/googleworkspace/googleworkspace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsales, err := googleworkspace.LookupGroup(ctx, \u0026googleworkspace.LookupGroupArgs{\n\t\t\tEmail: pulumi.StringRef(\"sales@example.com\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"groupName\", sales.Name)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.googleworkspace.GoogleworkspaceFunctions;\nimport com.pulumi.googleworkspace.inputs.GetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var sales = GoogleworkspaceFunctions.getGroup(GetGroupArgs.builder()\n            .email(\"sales@example.com\")\n            .build());\n\n        ctx.export(\"groupName\", sales.applyValue(getGroupResult -\u003e getGroupResult.name()));\n    }\n}\n```\n```yaml\nvariables:\n  sales:\n    fn::invoke:\n      function: googleworkspace:getGroup\n      arguments:\n        email: sales@example.com\noutputs:\n  groupName: ${sales.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getGroup.\n",
        "properties": {
          "email": {
            "type": "string",
            "description": "The group's email address. If your account has multiple domains,select the appropriate domain for the email address. The email must be unique.\n"
          },
          "id": {
            "type": "string",
            "description": "The unique ID of a group. A group id can be used as a group request URI's groupKey.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getGroup.\n",
        "properties": {
          "adminCreated": {
            "description": "Value is true if this group was created by an administrator rather than a user.\n",
            "type": "boolean"
          },
          "aliases": {
            "description": "asps.list of group's email addresses.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": {
            "description": "An extended description to help users determine the purpose of a group.For example, you can include information about who should join the group,the types of messages to send to the group, links to FAQs about the group, or related groups.\n",
            "type": "string"
          },
          "directMembersCount": {
            "description": "The number of users that are direct members of the group.If a group is a member (child) of this group (the parent),members of the child group are not counted in the directMembersCount property of the parent group.\n",
            "type": "number"
          },
          "email": {
            "description": "The group's email address. If your account has multiple domains,select the appropriate domain for the email address. The email must be unique.\n",
            "type": "string"
          },
          "etag": {
            "description": "ETag of the resource.\n",
            "type": "string"
          },
          "id": {
            "description": "The unique ID of a group. A group id can be used as a group request URI's groupKey.\n",
            "type": "string"
          },
          "name": {
            "description": "The group's display name.\n",
            "type": "string"
          },
          "nonEditableAliases": {
            "description": "asps.list of the group's non-editable alias email addresses that are outside of the account's primary domain or subdomains. These are functioning email addresses used by the group.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "adminCreated",
          "aliases",
          "description",
          "directMembersCount",
          "email",
          "etag",
          "id",
          "name",
          "nonEditableAliases"
        ],
        "type": "object"
      }
    },
    "googleworkspace:index/getGroupMember:getGroupMember": {
      "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as googleworkspace from \"@pulumi/googleworkspace\";\n\nconst sales = googleworkspace.getGroup({\n    email: \"sales@example.com\",\n});\nconst my-group-member = sales.then(sales =\u003e googleworkspace.getGroupMember({\n    groupId: sales.id,\n    email: \"michael.scott@example.com\",\n}));\nexport const groupMemberRole = my_group_member.then(my_group_member =\u003e my_group_member.role);\n```\n```python\nimport pulumi\nimport pulumi_googleworkspace as googleworkspace\n\nsales = googleworkspace.get_group(email=\"sales@example.com\")\nmy_group_member = googleworkspace.get_group_member(group_id=sales.id,\n    email=\"michael.scott@example.com\")\npulumi.export(\"groupMemberRole\", my_group_member.role)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Googleworkspace = Pulumi.Googleworkspace;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var sales = Googleworkspace.GetGroup.Invoke(new()\n    {\n        Email = \"sales@example.com\",\n    });\n\n    var my_group_member = Googleworkspace.GetGroupMember.Invoke(new()\n    {\n        GroupId = sales.Apply(getGroupResult =\u003e getGroupResult.Id),\n        Email = \"michael.scott@example.com\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"groupMemberRole\"] = my_group_member.Apply(my_group_member =\u003e my_group_member.Apply(getGroupMemberResult =\u003e getGroupMemberResult.Role)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/googleworkspace/googleworkspace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsales, err := googleworkspace.LookupGroup(ctx, \u0026googleworkspace.LookupGroupArgs{\n\t\t\tEmail: pulumi.StringRef(\"sales@example.com\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmy_group_member, err := googleworkspace.LookupGroupMember(ctx, \u0026googleworkspace.LookupGroupMemberArgs{\n\t\t\tGroupId: sales.Id,\n\t\t\tEmail:   pulumi.StringRef(\"michael.scott@example.com\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"groupMemberRole\", my_group_member.Role)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.googleworkspace.GoogleworkspaceFunctions;\nimport com.pulumi.googleworkspace.inputs.GetGroupArgs;\nimport com.pulumi.googleworkspace.inputs.GetGroupMemberArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var sales = GoogleworkspaceFunctions.getGroup(GetGroupArgs.builder()\n            .email(\"sales@example.com\")\n            .build());\n\n        final var my-group-member = GoogleworkspaceFunctions.getGroupMember(GetGroupMemberArgs.builder()\n            .groupId(sales.applyValue(getGroupResult -\u003e getGroupResult.id()))\n            .email(\"michael.scott@example.com\")\n            .build());\n\n        ctx.export(\"groupMemberRole\", my_group_member.role());\n    }\n}\n```\n```yaml\nvariables:\n  sales:\n    fn::invoke:\n      function: googleworkspace:getGroup\n      arguments:\n        email: sales@example.com\n  my-group-member:\n    fn::invoke:\n      function: googleworkspace:getGroupMember\n      arguments:\n        groupId: ${sales.id}\n        email: michael.scott@example.com\noutputs:\n  groupMemberRole: ${[\"my-group-member\"].role}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getGroupMember.\n",
        "properties": {
          "email": {
            "type": "string"
          },
          "groupId": {
            "type": "string"
          },
          "memberId": {
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "groupId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getGroupMember.\n",
        "properties": {
          "deliverySettings": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "etag": {
            "type": "string"
          },
          "groupId": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "memberId": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "deliverySettings",
          "email",
          "etag",
          "groupId",
          "id",
          "memberId",
          "role",
          "status",
          "type"
        ],
        "type": "object"
      }
    },
    "googleworkspace:index/getGroupMembers:getGroupMembers": {
      "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as googleworkspace from \"@pulumi/googleworkspace\";\n\nconst salesGroup = googleworkspace.getGroup({\n    email: \"sales@example.com\",\n});\nconst salesGroupMembers = salesGroup.then(salesGroup =\u003e googleworkspace.getGroupMembers({\n    groupId: salesGroup.id,\n}));\nexport const groupMembers = salesGroupMembers.then(salesGroupMembers =\u003e salesGroupMembers.members);\n```\n```python\nimport pulumi\nimport pulumi_googleworkspace as googleworkspace\n\nsales_group = googleworkspace.get_group(email=\"sales@example.com\")\nsales_group_members = googleworkspace.get_group_members(group_id=sales_group.id)\npulumi.export(\"groupMembers\", sales_group_members.members)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Googleworkspace = Pulumi.Googleworkspace;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var salesGroup = Googleworkspace.GetGroup.Invoke(new()\n    {\n        Email = \"sales@example.com\",\n    });\n\n    var salesGroupMembers = Googleworkspace.GetGroupMembers.Invoke(new()\n    {\n        GroupId = salesGroup.Apply(getGroupResult =\u003e getGroupResult.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"groupMembers\"] = salesGroupMembers.Apply(getGroupMembersResult =\u003e getGroupMembersResult.Members),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/googleworkspace/googleworkspace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsalesGroup, err := googleworkspace.LookupGroup(ctx, \u0026googleworkspace.LookupGroupArgs{\n\t\t\tEmail: pulumi.StringRef(\"sales@example.com\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsalesGroupMembers, err := googleworkspace.LookupGroupMembers(ctx, \u0026googleworkspace.LookupGroupMembersArgs{\n\t\t\tGroupId: salesGroup.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"groupMembers\", salesGroupMembers.Members)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.googleworkspace.GoogleworkspaceFunctions;\nimport com.pulumi.googleworkspace.inputs.GetGroupArgs;\nimport com.pulumi.googleworkspace.inputs.GetGroupMembersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var salesGroup = GoogleworkspaceFunctions.getGroup(GetGroupArgs.builder()\n            .email(\"sales@example.com\")\n            .build());\n\n        final var salesGroupMembers = GoogleworkspaceFunctions.getGroupMembers(GetGroupMembersArgs.builder()\n            .groupId(salesGroup.applyValue(getGroupResult -\u003e getGroupResult.id()))\n            .build());\n\n        ctx.export(\"groupMembers\", salesGroupMembers.applyValue(getGroupMembersResult -\u003e getGroupMembersResult.members()));\n    }\n}\n```\n```yaml\nvariables:\n  salesGroup:\n    fn::invoke:\n      function: googleworkspace:getGroup\n      arguments:\n        email: sales@example.com\n  salesGroupMembers:\n    fn::invoke:\n      function: googleworkspace:getGroupMembers\n      arguments:\n        groupId: ${salesGroup.id}\noutputs:\n  groupMembers: ${salesGroupMembers.members}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getGroupMembers.\n",
        "properties": {
          "groupId": {
            "type": "string",
            "description": "Identifies the group in the API request. The value can be the group's email address, group alias, or the unique group ID.\n"
          },
          "includeDerivedMembership": {
            "type": "boolean",
            "description": "If true, lists indirect group memberships\n"
          }
        },
        "type": "object",
        "required": [
          "groupId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getGroupMembers.\n",
        "properties": {
          "etag": {
            "description": "ETag of the resource.\n",
            "type": "string"
          },
          "groupId": {
            "description": "Identifies the group in the API request. The value can be the group's email address, group alias, or the unique group ID.\n",
            "type": "string"
          },
          "id": {
            "description": "The ID of this resource.\n",
            "type": "string"
          },
          "includeDerivedMembership": {
            "description": "If true, lists indirect group memberships\n",
            "type": "boolean"
          },
          "members": {
            "description": "The members of the group\n",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FgetGroupMembersMember:getGroupMembersMember"
            },
            "type": "array"
          }
        },
        "required": [
          "etag",
          "groupId",
          "id",
          "members"
        ],
        "type": "object"
      }
    },
    "googleworkspace:index/getGroupSettings:getGroupSettings": {
      "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as googleworkspace from \"@pulumi/googleworkspace\";\n\nconst sales-settings = googleworkspace.getGroupSettings({\n    email: \"sales@example.com\",\n});\nexport const whoCanJoinSales = sales_settings.then(sales_settings =\u003e sales_settings.whoCanJoin);\n```\n```python\nimport pulumi\nimport pulumi_googleworkspace as googleworkspace\n\nsales_settings = googleworkspace.get_group_settings(email=\"sales@example.com\")\npulumi.export(\"whoCanJoinSales\", sales_settings.who_can_join)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Googleworkspace = Pulumi.Googleworkspace;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var sales_settings = Googleworkspace.GetGroupSettings.Invoke(new()\n    {\n        Email = \"sales@example.com\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"whoCanJoinSales\"] = sales_settings.Apply(sales_settings =\u003e sales_settings.Apply(getGroupSettingsResult =\u003e getGroupSettingsResult.WhoCanJoin)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/googleworkspace/googleworkspace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsales_settings, err := googleworkspace.LookupGroupSettings(ctx, \u0026googleworkspace.LookupGroupSettingsArgs{\n\t\t\tEmail: \"sales@example.com\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"whoCanJoinSales\", sales_settings.WhoCanJoin)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.googleworkspace.GoogleworkspaceFunctions;\nimport com.pulumi.googleworkspace.inputs.GetGroupSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var sales-settings = GoogleworkspaceFunctions.getGroupSettings(GetGroupSettingsArgs.builder()\n            .email(\"sales@example.com\")\n            .build());\n\n        ctx.export(\"whoCanJoinSales\", sales_settings.whoCanJoin());\n    }\n}\n```\n```yaml\nvariables:\n  sales-settings:\n    fn::invoke:\n      function: googleworkspace:getGroupSettings\n      arguments:\n        email: sales@example.com\noutputs:\n  whoCanJoinSales: ${[\"sales-settings\"].whoCanJoin}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getGroupSettings.\n",
        "properties": {
          "email": {
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "email"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getGroupSettings.\n",
        "properties": {
          "allowExternalMembers": {
            "type": "boolean"
          },
          "allowWebPosting": {
            "type": "boolean"
          },
          "archiveOnly": {
            "type": "boolean"
          },
          "customFooterText": {
            "type": "string"
          },
          "customReplyTo": {
            "type": "string"
          },
          "customRolesEnabledForSettingsToBeMerged": {
            "type": "boolean"
          },
          "defaultMessageDenyNotificationText": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "enableCollaborativeInbox": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "includeCustomFooter": {
            "type": "boolean"
          },
          "includeInGlobalAddressList": {
            "type": "boolean"
          },
          "isArchived": {
            "type": "boolean"
          },
          "membersCanPostAsTheGroup": {
            "type": "boolean"
          },
          "messageModerationLevel": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "primaryLanguage": {
            "type": "string"
          },
          "replyTo": {
            "type": "string"
          },
          "sendMessageDenyNotification": {
            "type": "boolean"
          },
          "spamModerationLevel": {
            "type": "string"
          },
          "whoCanAssistContent": {
            "type": "string"
          },
          "whoCanContactOwner": {
            "type": "string"
          },
          "whoCanDiscoverGroup": {
            "type": "string"
          },
          "whoCanJoin": {
            "type": "string"
          },
          "whoCanLeaveGroup": {
            "type": "string"
          },
          "whoCanModerateContent": {
            "type": "string"
          },
          "whoCanModerateMembers": {
            "type": "string"
          },
          "whoCanPostMessage": {
            "type": "string"
          },
          "whoCanViewGroup": {
            "type": "string"
          },
          "whoCanViewMembership": {
            "type": "string"
          }
        },
        "required": [
          "allowExternalMembers",
          "allowWebPosting",
          "archiveOnly",
          "customFooterText",
          "customReplyTo",
          "customRolesEnabledForSettingsToBeMerged",
          "defaultMessageDenyNotificationText",
          "description",
          "email",
          "enableCollaborativeInbox",
          "id",
          "includeCustomFooter",
          "includeInGlobalAddressList",
          "isArchived",
          "membersCanPostAsTheGroup",
          "messageModerationLevel",
          "name",
          "primaryLanguage",
          "replyTo",
          "sendMessageDenyNotification",
          "spamModerationLevel",
          "whoCanAssistContent",
          "whoCanContactOwner",
          "whoCanDiscoverGroup",
          "whoCanJoin",
          "whoCanLeaveGroup",
          "whoCanModerateContent",
          "whoCanModerateMembers",
          "whoCanPostMessage",
          "whoCanViewGroup",
          "whoCanViewMembership"
        ],
        "type": "object"
      }
    },
    "googleworkspace:index/getGroups:getGroups": {
      "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as googleworkspace from \"@pulumi/googleworkspace\";\n\nconst my-domain-groups = googleworkspace.getGroups({});\nexport const numGroups = my_domain_groups.then(my_domain_groups =\u003e my_domain_groups.groups).length;\n```\n```python\nimport pulumi\nimport pulumi_googleworkspace as googleworkspace\n\nmy_domain_groups = googleworkspace.get_groups()\npulumi.export(\"numGroups\", len(my_domain_groups.groups))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Googleworkspace = Pulumi.Googleworkspace;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var my_domain_groups = Googleworkspace.GetGroups.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"numGroups\"] = my_domain_groups.Apply(my_domain_groups =\u003e my_domain_groups.Apply(getGroupsResult =\u003e getGroupsResult.Groups)).Length,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/googleworkspace/googleworkspace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmy_domain_groups, err := googleworkspace.GetGroups(ctx, \u0026googleworkspace.GetGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"numGroups\", pulumi.Int(len(my_domain_groups.Groups)))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.googleworkspace.GoogleworkspaceFunctions;\nimport com.pulumi.googleworkspace.inputs.GetGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var my-domain-groups = GoogleworkspaceFunctions.getGroups();\n\n        ctx.export(\"numGroups\", my_domain_groups.groups().length());\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getGroups.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of this resource.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getGroups.\n",
        "properties": {
          "groups": {
            "description": "A list of Group resources.\n",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FgetGroupsGroup:getGroupsGroup"
            },
            "type": "array"
          },
          "id": {
            "description": "The ID of this resource.\n",
            "type": "string"
          }
        },
        "required": [
          "groups",
          "id"
        ],
        "type": "object"
      }
    },
    "googleworkspace:index/getOrgUnit:getOrgUnit": {
      "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as googleworkspace from \"@pulumi/googleworkspace\";\n\nconst org = googleworkspace.getOrgUnit({\n    orgUnitId: \"id:01ab2c3d4efg56h\",\n});\n```\n```python\nimport pulumi\nimport pulumi_googleworkspace as googleworkspace\n\norg = googleworkspace.get_org_unit(org_unit_id=\"id:01ab2c3d4efg56h\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Googleworkspace = Pulumi.Googleworkspace;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var org = Googleworkspace.GetOrgUnit.Invoke(new()\n    {\n        OrgUnitId = \"id:01ab2c3d4efg56h\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/googleworkspace/googleworkspace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := googleworkspace.LookupOrgUnit(ctx, \u0026googleworkspace.LookupOrgUnitArgs{\n\t\t\tOrgUnitId: pulumi.StringRef(\"id:01ab2c3d4efg56h\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.googleworkspace.GoogleworkspaceFunctions;\nimport com.pulumi.googleworkspace.inputs.GetOrgUnitArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var org = GoogleworkspaceFunctions.getOrgUnit(GetOrgUnitArgs.builder()\n            .orgUnitId(\"id:01ab2c3d4efg56h\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  org:\n    fn::invoke:\n      function: googleworkspace:getOrgUnit\n      arguments:\n        orgUnitId: id:01ab2c3d4efg56h\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getOrgUnit.\n",
        "properties": {
          "orgUnitId": {
            "type": "string",
            "description": "The unique ID of the organizational unit.\n"
          },
          "orgUnitPath": {
            "type": "string",
            "description": "The full path to the organizational unit. The orgUnitPath is a derived property. When listed, it is derived from parentOrgunitPath and organizational unit's name. For example, for an organizational unit named 'apps' under parent organization '/engineering', the orgUnitPath is '/engineering/apps'. In order to edit an orgUnitPath, either update the name of the organization or the parentOrgunitPath. A user's organizational unit determines which Google Workspace services the user has access to. If the user is moved to a new organization, the user's access changes. For more information about organization structures, see the [administration help center](https://support.google.com/a/answer/4352075). For more information about moving a user to a different organization, see [chromeosdevices.update a user](https://developers.google.com/admin-sdk/directory/v1/guides/manage-users#update_user).\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getOrgUnit.\n",
        "properties": {
          "blockInheritance": {
            "description": "Determines if a sub-organizational unit can inherit the settings of the parent organization. False means a sub-organizational unit inherits the settings of the nearest parent organizational unit. For more information on inheritance and users in an organization structure, see the [administration help center](https://support.google.com/a/answer/4352075).\n",
            "type": "boolean"
          },
          "description": {
            "description": "Description of the organizational unit.\n",
            "type": "string"
          },
          "etag": {
            "description": "ETag of the resource.\n",
            "type": "string"
          },
          "id": {
            "description": "The ID of this resource.\n",
            "type": "string"
          },
          "name": {
            "description": "The organizational unit's path name. For example, an organizational unit's name within the /corp/support/sales*support parent path is sales*support.\n",
            "type": "string"
          },
          "orgUnitId": {
            "description": "The unique ID of the organizational unit.\n",
            "type": "string"
          },
          "orgUnitPath": {
            "description": "The full path to the organizational unit. The orgUnitPath is a derived property. When listed, it is derived from parentOrgunitPath and organizational unit's name. For example, for an organizational unit named 'apps' under parent organization '/engineering', the orgUnitPath is '/engineering/apps'. In order to edit an orgUnitPath, either update the name of the organization or the parentOrgunitPath. A user's organizational unit determines which Google Workspace services the user has access to. If the user is moved to a new organization, the user's access changes. For more information about organization structures, see the [administration help center](https://support.google.com/a/answer/4352075). For more information about moving a user to a different organization, see [chromeosdevices.update a user](https://developers.google.com/admin-sdk/directory/v1/guides/manage-users#update_user).\n",
            "type": "string"
          },
          "parentOrgUnitId": {
            "description": "The unique ID of the parent organizational unit.\n",
            "type": "string"
          },
          "parentOrgUnitPath": {
            "description": "The organizational unit's parent path. For example, /corp/sales is the parent path for /corp/sales/sales_support organizational unit.\n",
            "type": "string"
          }
        },
        "required": [
          "blockInheritance",
          "description",
          "etag",
          "id",
          "name",
          "orgUnitId",
          "orgUnitPath",
          "parentOrgUnitId",
          "parentOrgUnitPath"
        ],
        "type": "object"
      }
    },
    "googleworkspace:index/getPrivileges:getPrivileges": {
      "description": "## Example Usage\n\n",
      "inputs": {
        "description": "A collection of arguments for invoking getPrivileges.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of this resource.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getPrivileges.\n",
        "properties": {
          "etag": {
            "description": "ETag of the resource.\n",
            "type": "string"
          },
          "id": {
            "description": "The ID of this resource.\n",
            "type": "string"
          },
          "items": {
            "description": "A list of Privilege resources. The API returns a tree-like structure with parent-child privileges, the provider flattens this list.\n",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FgetPrivilegesItem:getPrivilegesItem"
            },
            "type": "array"
          }
        },
        "required": [
          "etag",
          "id",
          "items"
        ],
        "type": "object"
      }
    },
    "googleworkspace:index/getRole:getRole": {
      "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as googleworkspace from \"@pulumi/googleworkspace\";\n\nconst group-admin = googleworkspace.getRole({\n    name: \"_GROUPS_ADMIN_ROLE\",\n});\nexport const isSystemRole = group_admin.then(group_admin =\u003e group_admin.isSystemRole);\n```\n```python\nimport pulumi\nimport pulumi_googleworkspace as googleworkspace\n\ngroup_admin = googleworkspace.get_role(name=\"_GROUPS_ADMIN_ROLE\")\npulumi.export(\"isSystemRole\", group_admin.is_system_role)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Googleworkspace = Pulumi.Googleworkspace;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var group_admin = Googleworkspace.GetRole.Invoke(new()\n    {\n        Name = \"_GROUPS_ADMIN_ROLE\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"isSystemRole\"] = group_admin.Apply(group_admin =\u003e group_admin.Apply(getRoleResult =\u003e getRoleResult.IsSystemRole)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/googleworkspace/googleworkspace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tgroup_admin, err := googleworkspace.LookupRole(ctx, \u0026googleworkspace.LookupRoleArgs{\n\t\t\tName: \"_GROUPS_ADMIN_ROLE\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"isSystemRole\", group_admin.IsSystemRole)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.googleworkspace.GoogleworkspaceFunctions;\nimport com.pulumi.googleworkspace.inputs.GetRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var group-admin = GoogleworkspaceFunctions.getRole(GetRoleArgs.builder()\n            .name(\"_GROUPS_ADMIN_ROLE\")\n            .build());\n\n        ctx.export(\"isSystemRole\", group_admin.isSystemRole());\n    }\n}\n```\n```yaml\nvariables:\n  group-admin:\n    fn::invoke:\n      function: googleworkspace:getRole\n      arguments:\n        name: _GROUPS_ADMIN_ROLE\noutputs:\n  isSystemRole: ${[\"group-admin\"].isSystemRole}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getRole.\n",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the role.\n"
          }
        },
        "type": "object",
        "required": [
          "name"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getRole.\n",
        "properties": {
          "description": {
            "description": "A short description of the role.\n",
            "type": "string"
          },
          "etag": {
            "description": "ETag of the resource.\n",
            "type": "string"
          },
          "id": {
            "description": "ID of the role.\n",
            "type": "string"
          },
          "isSuperAdminRole": {
            "description": "Returns true if the role is a super admin role.\n",
            "type": "boolean"
          },
          "isSystemRole": {
            "description": "Returns true if this is a pre-defined system role.\n",
            "type": "boolean"
          },
          "name": {
            "description": "Name of the role.\n",
            "type": "string"
          },
          "privileges": {
            "description": "The set of privileges that are granted to this role.\n",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FgetRolePrivilege:getRolePrivilege"
            },
            "type": "array"
          }
        },
        "required": [
          "description",
          "etag",
          "id",
          "isSuperAdminRole",
          "isSystemRole",
          "name",
          "privileges"
        ],
        "type": "object"
      }
    },
    "googleworkspace:index/getSchema:getSchema": {
      "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as googleworkspace from \"@pulumi/googleworkspace\";\n\nconst birthday = googleworkspace.getSchema({\n    schemaName: \"birthday\",\n});\nexport const schemaDisplayName = birthday.then(birthday =\u003e birthday.displayName);\n```\n```python\nimport pulumi\nimport pulumi_googleworkspace as googleworkspace\n\nbirthday = googleworkspace.get_schema(schema_name=\"birthday\")\npulumi.export(\"schemaDisplayName\", birthday.display_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Googleworkspace = Pulumi.Googleworkspace;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var birthday = Googleworkspace.GetSchema.Invoke(new()\n    {\n        SchemaName = \"birthday\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"schemaDisplayName\"] = birthday.Apply(getSchemaResult =\u003e getSchemaResult.DisplayName),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/googleworkspace/googleworkspace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbirthday, err := googleworkspace.LookupSchema(ctx, \u0026googleworkspace.LookupSchemaArgs{\n\t\t\tSchemaName: pulumi.StringRef(\"birthday\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"schemaDisplayName\", birthday.DisplayName)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.googleworkspace.GoogleworkspaceFunctions;\nimport com.pulumi.googleworkspace.inputs.GetSchemaArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var birthday = GoogleworkspaceFunctions.getSchema(GetSchemaArgs.builder()\n            .schemaName(\"birthday\")\n            .build());\n\n        ctx.export(\"schemaDisplayName\", birthday.applyValue(getSchemaResult -\u003e getSchemaResult.displayName()));\n    }\n}\n```\n```yaml\nvariables:\n  birthday:\n    fn::invoke:\n      function: googleworkspace:getSchema\n      arguments:\n        schemaName: birthday\noutputs:\n  schemaDisplayName: ${birthday.displayName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getSchema.\n",
        "properties": {
          "schemaId": {
            "type": "string",
            "description": "The unique identifier of the schema.\n"
          },
          "schemaName": {
            "type": "string",
            "description": "The schema's name.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSchema.\n",
        "properties": {
          "displayName": {
            "description": "Display name for the schema.\n",
            "type": "string"
          },
          "etag": {
            "description": "ETag of the resource.\n",
            "type": "string"
          },
          "fields": {
            "description": "A list of fields in the schema.\n",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FgetSchemaField:getSchemaField"
            },
            "type": "array"
          },
          "id": {
            "description": "The ID of this resource.\n",
            "type": "string"
          },
          "schemaId": {
            "description": "The unique identifier of the schema.\n",
            "type": "string"
          },
          "schemaName": {
            "description": "The schema's name.\n",
            "type": "string"
          }
        },
        "required": [
          "displayName",
          "etag",
          "fields",
          "id",
          "schemaId",
          "schemaName"
        ],
        "type": "object"
      }
    },
    "googleworkspace:index/getUser:getUser": {
      "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as googleworkspace from \"@pulumi/googleworkspace\";\n\nconst dwight = googleworkspace.getUser({\n    primaryEmail: \"dwight.schrute@example.com\",\n});\nexport const isUserAdmin = dwight.then(dwight =\u003e dwight.isAdmin);\n```\n```python\nimport pulumi\nimport pulumi_googleworkspace as googleworkspace\n\ndwight = googleworkspace.get_user(primary_email=\"dwight.schrute@example.com\")\npulumi.export(\"isUserAdmin\", dwight.is_admin)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Googleworkspace = Pulumi.Googleworkspace;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var dwight = Googleworkspace.GetUser.Invoke(new()\n    {\n        PrimaryEmail = \"dwight.schrute@example.com\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"isUserAdmin\"] = dwight.Apply(getUserResult =\u003e getUserResult.IsAdmin),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/googleworkspace/googleworkspace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdwight, err := googleworkspace.LookupUser(ctx, \u0026googleworkspace.LookupUserArgs{\n\t\t\tPrimaryEmail: pulumi.StringRef(\"dwight.schrute@example.com\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"isUserAdmin\", dwight.IsAdmin)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.googleworkspace.GoogleworkspaceFunctions;\nimport com.pulumi.googleworkspace.inputs.GetUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var dwight = GoogleworkspaceFunctions.getUser(GetUserArgs.builder()\n            .primaryEmail(\"dwight.schrute@example.com\")\n            .build());\n\n        ctx.export(\"isUserAdmin\", dwight.applyValue(getUserResult -\u003e getUserResult.isAdmin()));\n    }\n}\n```\n```yaml\nvariables:\n  dwight:\n    fn::invoke:\n      function: googleworkspace:getUser\n      arguments:\n        primaryEmail: dwight.schrute@example.com\noutputs:\n  isUserAdmin: ${dwight.isAdmin}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getUser.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique ID for the user.\n"
          },
          "primaryEmail": {
            "type": "string",
            "description": "The user's primary email address. The primaryEmail must be unique and cannot be an alias of another user.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getUser.\n",
        "properties": {
          "addresses": {
            "description": "A list of the user's addresses. The maximum allowed data size is 10Kb.\n",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FgetUserAddress:getUserAddress"
            },
            "type": "array"
          },
          "agreedToTerms": {
            "description": "This property is true if the user has completed an initial login and accepted the Terms of Service agreement.\n",
            "type": "boolean"
          },
          "aliases": {
            "description": "asps.list of the user's alias email addresses.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "archived": {
            "description": "Indicates if user is archived.\n",
            "type": "boolean"
          },
          "changePasswordAtNextLogin": {
            "description": "Indicates if the user is forced to change their password at next login. This setting doesn't apply when the user signs in via a third-party identity provider.\n",
            "type": "boolean"
          },
          "creationTime": {
            "description": "The time the user's account was created. The value is in ISO 8601 date and time format. The time is the complete date plus hours, minutes, and seconds in the form YYYY-MM-DDThh:mm:ssTZD. For example, 2010-04-05T17:30:04+01:00.\n",
            "type": "string"
          },
          "customSchemas": {
            "description": "Custom fields of the user.\n",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FgetUserCustomSchema:getUserCustomSchema"
            },
            "type": "array"
          },
          "customerId": {
            "description": "The customer ID to retrieve all account users. You can use the alias my_customer to represent your account's customerId. As a reseller administrator, you can use the resold customer account's customerId. To get a customerId, use the account's primary domain in the domain parameter of a users.list request.\n",
            "type": "string"
          },
          "deletionTime": {
            "description": "The time the user's account was deleted. The value is in ISO 8601 date and time format The time is the complete date plus hours, minutes, and seconds in the form YYYY-MM-DDThh:mm:ssTZD. For example 2010-04-05T17:30:04+01:00.\n",
            "type": "string"
          },
          "emails": {
            "description": "A list of the user's email addresses. The maximum allowed data size is 10Kb.\n",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FgetUserEmail:getUserEmail"
            },
            "type": "array"
          },
          "etag": {
            "description": "ETag of the resource.\n",
            "type": "string"
          },
          "externalIds": {
            "description": "A list of external IDs for the user, such as an employee or network ID. The maximum allowed data size is 2Kb.\n",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FgetUserExternalId:getUserExternalId"
            },
            "type": "array"
          },
          "hashFunction": {
            "description": "Stores the hash format of the password property. We recommend sending the password property value as a base 16 bit hexadecimal-encoded hash value. Set the hashFunction values as either the SHA-1, MD5, or crypt hash format.\n",
            "type": "string"
          },
          "id": {
            "description": "The unique ID for the user.\n",
            "type": "string"
          },
          "ims": {
            "description": "The user's Instant Messenger (IM) accounts. A user account can have multiple ims properties. But, only one of these ims properties can be the primary IM contact. The maximum allowed data size is 2Kb.\n",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FgetUserIm:getUserIm"
            },
            "type": "array"
          },
          "includeInGlobalAddressList": {
            "description": "Indicates if the user's profile is visible in the Google Workspace global address list when the contact sharing feature is enabled for the domain.\n",
            "type": "boolean"
          },
          "ipAllowlist": {
            "description": "If true, the user's IP address is added to the allow list.\n",
            "type": "boolean"
          },
          "isAdmin": {
            "description": "Indicates a user with super admininistrator privileges.\n",
            "type": "boolean"
          },
          "isDelegatedAdmin": {
            "description": "Indicates if the user is a delegated administrator.\n",
            "type": "boolean"
          },
          "isEnforcedIn2StepVerification": {
            "description": "Is 2-step verification enforced.\n",
            "type": "boolean"
          },
          "isEnrolledIn2StepVerification": {
            "description": "Is enrolled in 2-step verification.\n",
            "type": "boolean"
          },
          "isMailboxSetup": {
            "description": "Indicates if the user's Google mailbox is created. This property is only applicable if the user has been assigned a Gmail license.\n",
            "type": "boolean"
          },
          "keywords": {
            "description": "A list of the user's keywords. The maximum allowed data size is 1Kb.\n",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FgetUserKeyword:getUserKeyword"
            },
            "type": "array"
          },
          "languages": {
            "description": "A list of the user's languages. The maximum allowed data size is 1Kb.\n",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FgetUserLanguage:getUserLanguage"
            },
            "type": "array"
          },
          "lastLoginTime": {
            "description": "The last time the user logged into the user's account. The value is in ISO 8601 date and time format. The time is the complete date plus hours, minutes, and seconds in the form YYYY-MM-DDThh:mm:ssTZD. For example, 2010-04-05T17:30:04+01:00.\n",
            "type": "string"
          },
          "locations": {
            "description": "A list of the user's locations. The maximum allowed data size is 10Kb.\n",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FgetUserLocation:getUserLocation"
            },
            "type": "array"
          },
          "names": {
            "description": "Holds the given and family names of the user, and the read-only fullName value. The maximum number of characters in the givenName and in the familyName values is 60. In addition, name values support unicode/UTF-8 characters, and can contain spaces, letters (a-z), numbers (0-9), dashes (-), forward slashes (/), and periods (.). Maximum allowed data size for this field is 1Kb.\n",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FgetUserName:getUserName"
            },
            "type": "array"
          },
          "nonEditableAliases": {
            "description": "asps.list of the user's non-editable alias email addresses. These are typically outside the account's primary domain or sub-domain.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "orgUnitPath": {
            "description": "The full path of the parent organization associated with the user. If the parent organization is the top-level, it is represented as a forward slash (/).\n",
            "type": "string"
          },
          "organizations": {
            "description": "A list of organizations the user belongs to. The maximum allowed data size is 10Kb.\n",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FgetUserOrganization:getUserOrganization"
            },
            "type": "array"
          },
          "password": {
            "description": "Stores the password for the user account. A password can contain any combination of ASCII characters. A minimum of 8 characters is required. The maximum length is 100 characters. As the API does not return the value of password, this field is write-only, and the value stored in the state will be what is provided in the configuration. The field is required on create and will be empty on import.\n",
            "type": "string"
          },
          "phones": {
            "description": "A list of the user's phone numbers. The maximum allowed data size is 1Kb.\n",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FgetUserPhone:getUserPhone"
            },
            "type": "array"
          },
          "posixAccounts": {
            "description": "A list of POSIX account information for the user.\n",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FgetUserPosixAccount:getUserPosixAccount"
            },
            "type": "array"
          },
          "primaryEmail": {
            "description": "The user's primary email address. The primaryEmail must be unique and cannot be an alias of another user.\n",
            "type": "string"
          },
          "recoveryEmail": {
            "description": "Recovery email of the user.\n",
            "type": "string"
          },
          "recoveryPhone": {
            "description": "Recovery phone of the user. The phone number must be in the E.164 format, starting with the plus sign (+). Example: +16506661212.\n",
            "type": "string"
          },
          "relations": {
            "description": "A list of the user's relationships to other users. The maximum allowed data size for this field is 2Kb.\n",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FgetUserRelation:getUserRelation"
            },
            "type": "array"
          },
          "sshPublicKeys": {
            "description": "A list of SSH public keys. The maximum allowed data size is 10Kb.\n",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FgetUserSshPublicKey:getUserSshPublicKey"
            },
            "type": "array"
          },
          "suspended": {
            "description": "Indicates if user is suspended.\n",
            "type": "boolean"
          },
          "suspensionReason": {
            "description": "Has the reason a user account is suspended either by the administrator or by Google at the time of suspension. The property is returned only if the suspended property is true.\n",
            "type": "string"
          },
          "thumbnailPhotoEtag": {
            "description": "ETag of the user's photo\n",
            "type": "string"
          },
          "thumbnailPhotoUrl": {
            "description": "Photo Url of the user.\n",
            "type": "string"
          },
          "websites": {
            "description": "A list of the user's websites. The maximum allowed data size is 2Kb.\n",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FgetUserWebsite:getUserWebsite"
            },
            "type": "array"
          }
        },
        "required": [
          "addresses",
          "agreedToTerms",
          "aliases",
          "archived",
          "changePasswordAtNextLogin",
          "creationTime",
          "customSchemas",
          "customerId",
          "deletionTime",
          "emails",
          "etag",
          "externalIds",
          "hashFunction",
          "id",
          "ims",
          "includeInGlobalAddressList",
          "ipAllowlist",
          "isAdmin",
          "isDelegatedAdmin",
          "isEnforcedIn2StepVerification",
          "isEnrolledIn2StepVerification",
          "isMailboxSetup",
          "keywords",
          "languages",
          "lastLoginTime",
          "locations",
          "names",
          "nonEditableAliases",
          "orgUnitPath",
          "organizations",
          "password",
          "phones",
          "posixAccounts",
          "primaryEmail",
          "recoveryEmail",
          "recoveryPhone",
          "relations",
          "sshPublicKeys",
          "suspended",
          "suspensionReason",
          "thumbnailPhotoEtag",
          "thumbnailPhotoUrl",
          "websites"
        ],
        "type": "object"
      }
    },
    "googleworkspace:index/getUsers:getUsers": {
      "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as googleworkspace from \"@pulumi/googleworkspace\";\n\nconst my-domain-users = googleworkspace.getUsers({});\nexport const numUsers = my_domain_users.then(my_domain_users =\u003e my_domain_users.users).length;\n```\n```python\nimport pulumi\nimport pulumi_googleworkspace as googleworkspace\n\nmy_domain_users = googleworkspace.get_users()\npulumi.export(\"numUsers\", len(my_domain_users.users))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Googleworkspace = Pulumi.Googleworkspace;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var my_domain_users = Googleworkspace.GetUsers.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"numUsers\"] = my_domain_users.Apply(my_domain_users =\u003e my_domain_users.Apply(getUsersResult =\u003e getUsersResult.Users)).Length,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/googleworkspace/googleworkspace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmy_domain_users, err := googleworkspace.GetUsers(ctx, \u0026googleworkspace.GetUsersArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"numUsers\", pulumi.Int(len(my_domain_users.Users)))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.googleworkspace.GoogleworkspaceFunctions;\nimport com.pulumi.googleworkspace.inputs.GetUsersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var my-domain-users = GoogleworkspaceFunctions.getUsers();\n\n        ctx.export(\"numUsers\", my_domain_users.users().length());\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getUsers.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of this resource.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getUsers.\n",
        "properties": {
          "id": {
            "description": "The ID of this resource.\n",
            "type": "string"
          },
          "users": {
            "description": "A list of User resources.\n",
            "items": {
              "$ref": "#/types/googleworkspace:index%2FgetUsersUser:getUsersUser"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "users"
        ],
        "type": "object"
      }
    }
  },
  "parameterization": {
    "baseProvider": {
      "name": "terraform-provider",
      "version": "0.8.0"
    },
    "parameter": "eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL2hhc2hpY29ycC9nb29nbGV3b3Jrc3BhY2UiLCJ2ZXJzaW9uIjoiMC43LjAifX0="
  }
}
