diff --git a/pkg/proto/v0/accounts.pb.go b/pkg/proto/v0/accounts.pb.go index 85cd3b4ec..ff52efda7 100644 --- a/pkg/proto/v0/accounts.pb.go +++ b/pkg/proto/v0/accounts.pb.go @@ -344,178 +344,105 @@ func (m *DeleteAccountRequest) GetId() string { // Account follows the properties of the ms graph api user resuorce. // See https://docs.microsoft.com/en-us/graph/api/resources/user?view=graph-rest-1.0#properties type Account struct { - // A freeform text entry field for the user to describe themselves. - AboutMe string `protobuf:"bytes,1,opt,name=about_me,json=aboutMe,proto3" json:"about_me,omitempty"` + // The unique identifier for the user. Key. Not nullable. Non reassignable. Read-only. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // *true* if the account is enabled; otherwise, *false*. This property is required when a user is created. Supports $filter. AccountEnabled bool `protobuf:"varint,2,opt,name=account_enabled,json=accountEnabled,proto3" json:"account_enabled,omitempty"` - // Sets the age group of the user. Allowed values: null, minor, notAdult and adult. Refer to the legal age group property definitions for further information. - AgeGroup string `protobuf:"bytes,3,opt,name=age_group,json=ageGroup,proto3" json:"age_group,omitempty"` - // The licenses that are assigned to the account. Not nullable. - AssignedLicenses []*AssignedLicense `protobuf:"bytes,4,rep,name=assigned_licenses,json=assignedLicenses,proto3" json:"assigned_licenses,omitempty"` - // The plans that are assigned to the account. Read-only. Not nullable. - AssignedPlans []*AssignedPlan `protobuf:"bytes,5,rep,name=assigned_plans,json=assignedPlans,proto3" json:"assigned_plans,omitempty"` - // The birthday of the user. - Birthday *timestamp.Timestamp `protobuf:"bytes,6,opt,name=birthday,proto3" json:"birthday,omitempty"` - // The telephone numbers for the user. NOTE: Although this is a string collection, only one number can be set for this property. - BusinessPhones []string `protobuf:"bytes,7,rep,name=business_phones,json=businessPhones,proto3" json:"business_phones,omitempty"` - // The city in which the user is located. Supports $filter. - City string `protobuf:"bytes,8,opt,name=city,proto3" json:"city,omitempty"` - // The company name which the user is associated. This property can be useful for describing the company that an external user comes from. - CompanyName string `protobuf:"bytes,9,opt,name=company_name,json=companyName,proto3" json:"company_name,omitempty"` - // Sets whether consent has been obtained for minors. Allowed values: null, granted, denied and notRequired. Refer to the legal age group property definitions for further information. - ConsentProvidedForMinor string `protobuf:"bytes,10,opt,name=consent_provided_for_minor,json=consentProvidedForMinor,proto3" json:"consent_provided_for_minor,omitempty"` - // The country/region in which the user is located; for example, “US” or “UK”. Supports $filter. - Country string `protobuf:"bytes,11,opt,name=country,proto3" json:"country,omitempty"` - // The created date of the account object. - CreatedDateTime *timestamp.Timestamp `protobuf:"bytes,12,opt,name=created_date_time,json=createdDateTime,proto3" json:"created_date_time,omitempty"` + // A resource account is also known as a /disabled user object/ in Azure AD, and can be used to represent resources in general. + // In Exchange it might be used to represent conference rooms, for example, and allow them to have a phone number. + // You could give printers or machines with a sync client resource accounts as well. + // A resource account can be homed in Microsoft 365 or on premises using Skype for Business Server 2019. + // *true* if the user is a resource account; otherwise, *false*. Null value should be considered false. + IsResourceAccount bool `protobuf:"varint,3,opt,name=is_resource_account,json=isResourceAccount,proto3" json:"is_resource_account,omitempty"` // Indicates whether the account was created as - // - a regular school or work account (null), + // - a regular school or work account ("" / emptystring), + // - a local account, fully managed by ocis (LocalAccount), includes synced accounts or // - an external account (Invitation), - // - a local account for an Azure Active Directory B2C tenant (LocalAccount) or // - self-service sign-up using email verification (EmailVerified). Read-only. - CreationType string `protobuf:"bytes,13,opt,name=creation_type,json=creationType,proto3" json:"creation_type,omitempty"` - // The date and time the user was deleted. Returned only on $select. - DeletedDateTime *timestamp.Timestamp `protobuf:"bytes,14,opt,name=deleted_date_time,json=deletedDateTime,proto3" json:"deleted_date_time,omitempty"` - // The name for the department in which the user works. Supports $filter. - Department string `protobuf:"bytes,15,opt,name=department,proto3" json:"department,omitempty"` + CreationType string `protobuf:"bytes,4,opt,name=creation_type,json=creationType,proto3" json:"creation_type,omitempty"` + // Represents the identities that can be used to sign in to this account. + // An identity can be provided by OCIS (also known as a local account), by organizations, or by social identity providers such as Facebook, Google, and Microsoft, and is tied to an account. + // May contain multiple items with the same signInType value. Supports $filter. + Identities []*Identities `protobuf:"bytes,5,rep,name=identities,proto3" json:"identities,omitempty"` // The name displayed in the address book for the account. // This is usually the combination of the user's first name, middle initial and last name. // This property is required when a user is created and it cannot be cleared during updates. // Supports $filter and $orderby. - DisplayName string `protobuf:"bytes,16,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - // The employee identifier assigned to the user by the organization. Supports $filter. - EmployeeId string `protobuf:"bytes,17,opt,name=employee_id,json=employeeId,proto3" json:"employee_id,omitempty"` - // For an external user invited to the tenant using the invitation API, this property represents the invited user's invitation status. - // For invited users, the state can be `PendingAcceptance` or `Accepted`, or emptystring / null for all other users. - // Returned only on $select. Supports $filter with the supported values. For example: $filter=externalUserState eq 'PendingAcceptance'. - ExternalUserState string `protobuf:"bytes,18,opt,name=external_user_state,json=externalUserState,proto3" json:"external_user_state,omitempty"` - // Shows the timestamp for the latest change to the externalUserState property. Returned only on $select. - // note: in the ms graph beta this changed to a string ?!? - ExternalUserStateChangeDateTime *timestamp.Timestamp `protobuf:"bytes,19,opt,name=external_user_state_change_date_time,json=externalUserStateChangeDateTime,proto3" json:"external_user_state_change_date_time,omitempty"` - // The fax number of the account. - FaxNumber string `protobuf:"bytes,20,opt,name=fax_number,json=faxNumber,proto3" json:"fax_number,omitempty"` - // The given name (first name) of the user. Supports $filter. - GivenName string `protobuf:"bytes,21,opt,name=given_name,json=givenName,proto3" json:"given_name,omitempty"` - // The hire date of the user. - HireDate *timestamp.Timestamp `protobuf:"bytes,22,opt,name=hire_date,json=hireDate,proto3" json:"hire_date,omitempty"` - // The unique identifier for the user. Key. Not nullable. Non reassignable. Read-only. - Id string `protobuf:"bytes,23,opt,name=id,proto3" json:"id,omitempty"` - // Represents the identities that can be used to sign in to this user account. - // An identity can be provided by OCIS (also known as a local account), by organizations, or by social identity providers such as Facebook, Google, and Microsoft, and is tied to an account. - // May contain multiple items with the same signInType value. Supports $filter. - Identities []*Identities `protobuf:"bytes,24,rep,name=identities,proto3" json:"identities,omitempty"` - // The instant message voice over IP (VOIP) session initiation protocol (SIP) addresses for the user. Read-only. - ImAddresses []string `protobuf:"bytes,25,rep,name=im_addresses,json=imAddresses,proto3" json:"im_addresses,omitempty"` - // A list for the user to describe their interests. - Interests []string `protobuf:"bytes,26,rep,name=interests,proto3" json:"interests,omitempty"` - // *true* if the user is a resource account; otherwise, *false*. Null value should be considered false. - IsResourceAccount bool `protobuf:"varint,27,opt,name=is_resource_account,json=isResourceAccount,proto3" json:"is_resource_account,omitempty"` - // The user’s job title. Supports $filter. - JobTitle string `protobuf:"bytes,28,opt,name=job_title,json=jobTitle,proto3" json:"job_title,omitempty"` - // The time when this account last changed their password. - LastPasswordChangeDateTime *timestamp.Timestamp `protobuf:"bytes,29,opt,name=last_password_change_date_time,json=lastPasswordChangeDateTime,proto3" json:"last_password_change_date_time,omitempty"` - // Used by enterprise applications to determine the legal age group of the user. - // This property is read-only and calculated based on `ageGroup` and `consentProvidedForMinor` properties. - // Allowed values: `null`, `minorWithOutParentalConsent`, `minorWithParentalConsent`, `minorNoParentalConsentRequired`, `notAdult` and `adult`. - // Refer to the legal age group property definitions for further information.) - LegalAgeGroupClassification string `protobuf:"bytes,30,opt,name=legal_age_group_classification,json=legalAgeGroupClassification,proto3" json:"legal_age_group_classification,omitempty"` + // posixaccount MUST cn + DisplayName string `protobuf:"bytes,6,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // The username + // posixaccount MUST uid + Username string `protobuf:"bytes,7,opt,name=username,proto3" json:"username,omitempty"` + // used for exposing the user using ldap + // posixaccount MUST uidnumber + UidNumber int64 `protobuf:"varint,8,opt,name=uid_number,json=uidNumber,proto3" json:"uid_number,omitempty"` + // used for exposing the user using ldap + // posixaccount MUST gidnumber + GidNumber int64 `protobuf:"varint,9,opt,name=gid_number,json=gidNumber,proto3" json:"gid_number,omitempty"` // The SMTP address for the user, for example, "jeff@contoso.onmicrosoft.com". Read-Only. Supports $filter. - Mail string `protobuf:"bytes,32,opt,name=mail,proto3" json:"mail,omitempty"` - // The mail alias for the user. This property must be specified when a user is created. Supports $filter. - MailNickname string `protobuf:"bytes,34,opt,name=mail_nickname,json=mailNickname,proto3" json:"mail_nickname,omitempty"` - // The primary cellular telephone number for the user. - MobilePhone string `protobuf:"bytes,35,opt,name=mobile_phone,json=mobilePhone,proto3" json:"mobile_phone,omitempty"` - // The URL for the user's personal site. - MySite string `protobuf:"bytes,36,opt,name=my_site,json=mySite,proto3" json:"my_site,omitempty"` - // The office location in the user's place of business. - OfficeLocation string `protobuf:"bytes,37,opt,name=office_location,json=officeLocation,proto3" json:"office_location,omitempty"` - // Contains the on-premises LDAP `distinguished name` or `DN`. - // The property is only populated for customers who are synchronizing their on-premises directory to ocis-accounts. Read-only. - OnPremisesDistinguishedName string `protobuf:"bytes,38,opt,name=on_premises_distinguished_name,json=onPremisesDistinguishedName,proto3" json:"on_premises_distinguished_name,omitempty"` - // Contains the on-premises `domainFQDN`, also called `dnsDomainName` synchronized from the on-premises directory - // The property is only populated for customers who are synchronizing their on-premises directory to ocis-accounts. Read-only. - OnPremisesDomainName string `protobuf:"bytes,39,opt,name=on_premises_domain_name,json=onPremisesDomainName,proto3" json:"on_premises_domain_name,omitempty"` - // This property is used to associate an on-premises LDAP user to the ocis account object. - // This property must be specified when creating a new user account in the Graph if you are using a federated domain for the user’s userPrincipalName (UPN) property. - // Important: The $ and _ characters cannot be used when specifying this property. Supports $filter. - OnPremisesImmutableId string `protobuf:"bytes,41,opt,name=on_premises_immutable_id,json=onPremisesImmutableId,proto3" json:"on_premises_immutable_id,omitempty"` - // Indicates the last time at which the object was synced with the on-premises directory; Read-only. - OnPremisesLastSyncDateTime *timestamp.Timestamp `protobuf:"bytes,42,opt,name=on_premises_last_sync_date_time,json=onPremisesLastSyncDateTime,proto3" json:"on_premises_last_sync_date_time,omitempty"` - // Errors when using synchronization during provisioning. - OnPremisesProvisioningErrors []*OnPremisesProvisioningError `protobuf:"bytes,43,rep,name=on_premises_provisioning_errors,json=onPremisesProvisioningErrors,proto3" json:"on_premises_provisioning_errors,omitempty"` - // Contains the on-premises `samAccountName` synchronized from the on-premises directory. - // The property is only populated for customers who are synchronizing their on-premises directory to ocis-accounts. Read-only. - OnPremisesSamAccountName string `protobuf:"bytes,44,opt,name=on_premises_sam_account_name,json=onPremisesSamAccountName,proto3" json:"on_premises_sam_account_name,omitempty"` - // Contains the on-premises security identifier (SID) for the user that was synchronized from on-premises to the cloud. Read-only. - OnPremisesSecurityIdentifier string `protobuf:"bytes,45,opt,name=on_premises_security_identifier,json=onPremisesSecurityIdentifier,proto3" json:"on_premises_security_identifier,omitempty"` + // inetorgperson MAY mail + Mail string `protobuf:"bytes,10,opt,name=mail,proto3" json:"mail,omitempty"` + // A description, useful for resource accounts + // posixaccount MAY description + Description string `protobuf:"bytes,11,opt,name=description,proto3" json:"description,omitempty"` + // Specifies the password profile for the user. + // The profile contains the user’s password. This property is required when a user is created. + // The password in the profile must satisfy minimum requirements as specified by the passwordPolicies property. + // By default, a strong password is required. + // posixaccount MAY authPassword + PasswordProfile *PasswordProfile `protobuf:"bytes,12,opt,name=password_profile,json=passwordProfile,proto3" json:"password_profile,omitempty"` + // The groups, directory roles and administrative units that the user is a member of. Read-only. Nullable. + // should we only respond with repeated strings of ids? no clients should a proper filter mask! + MemberOf []*Group `protobuf:"bytes,13,rep,name=memberOf,proto3" json:"memberOf,omitempty"` + // The created date of the account object. + CreatedDateTime *timestamp.Timestamp `protobuf:"bytes,16,opt,name=created_date_time,json=createdDateTime,proto3" json:"created_date_time,omitempty"` + // The date and time the user was deleted. Returned only on $select. + DeletedDateTime *timestamp.Timestamp `protobuf:"bytes,17,opt,name=deleted_date_time,json=deletedDateTime,proto3" json:"deleted_date_time,omitempty"` // *true* if this object is synced from an on-premises directory; // *false* if this object was originally synced from an on-premises directory but is no longer synced; // null if this object has never been synced from an on-premises directory (default). Read-only - OnPremisesSyncEnabled bool `protobuf:"varint,46,opt,name=on_premises_sync_enabled,json=onPremisesSyncEnabled,proto3" json:"on_premises_sync_enabled,omitempty"` + OnPremisesSyncEnabled bool `protobuf:"varint,20,opt,name=on_premises_sync_enabled,json=onPremisesSyncEnabled,proto3" json:"on_premises_sync_enabled,omitempty"` + // This property is used to associate an on-premises LDAP user to the ocis account object. + // This property must be specified when creating a new user account in the Graph if you are using a federated domain for the user’s userPrincipalName (UPN) property. + // Important: The $ and _ characters cannot be used when specifying this property. Supports $filter. + OnPremisesImmutableId string `protobuf:"bytes,21,opt,name=on_premises_immutable_id,json=onPremisesImmutableId,proto3" json:"on_premises_immutable_id,omitempty"` + // Contains the on-premises security identifier (SID) for the user that was synchronized from on-premises to the cloud. Read-only. + OnPremisesSecurityIdentifier string `protobuf:"bytes,22,opt,name=on_premises_security_identifier,json=onPremisesSecurityIdentifier,proto3" json:"on_premises_security_identifier,omitempty"` + // Contains the on-premises LDAP `distinguished name` or `DN`. + // The property is only populated for customers who are synchronizing their on-premises directory to ocis-accounts. Read-only. + OnPremisesDistinguishedName string `protobuf:"bytes,23,opt,name=on_premises_distinguished_name,json=onPremisesDistinguishedName,proto3" json:"on_premises_distinguished_name,omitempty"` + // Contains the on-premises `samAccountName` synchronized from the on-premises directory. + // The property is only populated for customers who are synchronizing their on-premises directory to ocis-accounts. Read-only. + OnPremisesSamAccountName string `protobuf:"bytes,24,opt,name=on_premises_sam_account_name,json=onPremisesSamAccountName,proto3" json:"on_premises_sam_account_name,omitempty"` + // Contains the on-premises `domainFQDN`, also called `dnsDomainName` synchronized from the on-premises directory + // The property is only populated for customers who are synchronizing their on-premises directory to ocis-accounts. Read-only. + OnPremisesDomainName string `protobuf:"bytes,25,opt,name=on_premises_domain_name,json=onPremisesDomainName,proto3" json:"on_premises_domain_name,omitempty"` // Contains the on-premises userPrincipalName synchronized from the on-premises directory. // The property is only populated for customers who are synchronizing their on-premises directory to ocis-accounts. Read-only. - OnPremisesUserPrincipalName string `protobuf:"bytes,47,opt,name=on_premises_user_principal_name,json=onPremisesUserPrincipalName,proto3" json:"on_premises_user_principal_name,omitempty"` - // A list of additional email addresses for the user; for example: ["bob@contoso.com", "Robert@fabrikam.com"]. Supports $filter. - // note: in ms graph v1.0 this is a string. in the beta api it is a string collection - OtherMails []string `protobuf:"bytes,48,rep,name=other_mails,json=otherMails,proto3" json:"other_mails,omitempty"` - // Specifies password policies for the user. This value is an enumeration with one possible value being “DisableStrongPassword”, which allows weaker passwords than the default policy to be specified. “DisablePasswordExpiration” can also be specified. The two may be specified together; for example: "DisablePasswordExpiration, DisableStrongPassword". - PasswordPolicies string `protobuf:"bytes,49,opt,name=password_policies,json=passwordPolicies,proto3" json:"password_policies,omitempty"` - // A list for the user to enumerate their past projects. - PastProjects []string `protobuf:"bytes,51,rep,name=past_projects,json=pastProjects,proto3" json:"past_projects,omitempty"` - // The postal code for the user's postal address. The postal code is specific to the user's country/region. In the United States of America, this attribute contains the ZIP code. - PostalCode string `protobuf:"bytes,52,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` - // The preferred data location for the user. For more information, see OneDrive Online Multi-Geo. https://docs.microsoft.com/sharepoint/dev/solution-guidance/multigeo-introduction string preferredDataLocation = 53; - PreferredDataLocation string `protobuf:"bytes,53,opt,name=preferred_data_location,json=preferredDataLocation,proto3" json:"preferred_data_location,omitempty"` - // The preferred language for the user. Should follow ISO 639-1 Code; for example "en-US". - PreferredLanguage string `protobuf:"bytes,54,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` - // The preferred name for the user. - PreferredName string `protobuf:"bytes,55,opt,name=preferred_name,json=preferredName,proto3" json:"preferred_name,omitempty"` - // For example: ["SMTP: bob@contoso.com", "smtp: bob@sales.contoso.com"] - // The any operator is required for filter expressions on multi-valued properties. Read-only, Not nullable. Supports $filter. - ProxyAddresses []string `protobuf:"bytes,57,rep,name=proxy_addresses,json=proxyAddresses,proto3" json:"proxy_addresses,omitempty"` + OnPremisesUserPrincipalName string `protobuf:"bytes,26,opt,name=on_premises_user_principal_name,json=onPremisesUserPrincipalName,proto3" json:"on_premises_user_principal_name,omitempty"` + // Indicates the last time at which the object was synced with the on-premises directory; Read-only. + OnPremisesLastSyncDateTime *timestamp.Timestamp `protobuf:"bytes,28,opt,name=on_premises_last_sync_date_time,json=onPremisesLastSyncDateTime,proto3" json:"on_premises_last_sync_date_time,omitempty"` + // Errors when using synchronization during provisioning. + OnPremisesProvisioningErrors []*OnPremisesProvisioningError `protobuf:"bytes,29,rep,name=on_premises_provisioning_errors,json=onPremisesProvisioningErrors,proto3" json:"on_premises_provisioning_errors,omitempty"` + // For an external user invited to the tenant using the invitation API, this property represents the invited user's invitation status. + // For invited users, the state can be `PendingAcceptance` or `Accepted`, or "" / emptystring for all other users. + // Returned only on $select. Supports $filter with the supported values. For example: $filter=externalUserState eq 'PendingAcceptance'. + ExternalUserState string `protobuf:"bytes,40,opt,name=external_user_state,json=externalUserState,proto3" json:"external_user_state,omitempty"` + // Shows the timestamp for the latest change to the externalUserState property. Returned only on $select. + ExternalUserStateChangeDateTime *timestamp.Timestamp `protobuf:"bytes,41,opt,name=external_user_state_change_date_time,json=externalUserStateChangeDateTime,proto3" json:"external_user_state_change_date_time,omitempty"` // Any refresh tokens or sessions tokens (session cookies) issued before this time are invalid, and applications will get // an error when using an invalid refresh or sessions token to acquire a delegated access token (to access APIs such as Microsoft Graph). // If this happens, the application will need to acquire a new refresh token by making a request to the authorize endpoint. // Returned only on $select. Read-only. Use invalidateAllRefreshTokens to reset. - RefreshTokensValidFromDateTime *timestamp.Timestamp `protobuf:"bytes,58,opt,name=refresh_tokens_valid_from_date_time,json=refreshTokensValidFromDateTime,proto3" json:"refresh_tokens_valid_from_date_time,omitempty"` - // A list for the user to enumerate their responsibilities. - Responsibilities []string `protobuf:"bytes,59,rep,name=responsibilities,proto3" json:"responsibilities,omitempty"` - // A list for the user to enumerate the schools they have attended. - Schools []string `protobuf:"bytes,60,rep,name=schools,proto3" json:"schools,omitempty"` - // *true* if the Outlook global address list should contain this user, otherwise *false*. If not set, this will be treated as *true*. - // For users invited through the invitation manager, this property will be set to *false*. - ShowInAddressList bool `protobuf:"varint,61,opt,name=show_in_address_list,json=showInAddressList,proto3" json:"show_in_address_list,omitempty"` + RefreshTokensValidFromDateTime *timestamp.Timestamp `protobuf:"bytes,60,opt,name=refresh_tokens_valid_from_date_time,json=refreshTokensValidFromDateTime,proto3" json:"refresh_tokens_valid_from_date_time,omitempty"` // Any refresh tokens or sessions tokens (session cookies) issued before this time are invalid, and applications will get // an error when using an invalid refresh or sessions token to acquire a delegated access token (to access APIs such as Microsoft Graph). // If this happens, the application will need to acquire a new refresh token by making a request to the authorize endpoint. // Read-only. Use revokeSignInSessions to reset. - SignInSessionsValidFromDateTime *timestamp.Timestamp `protobuf:"bytes,62,opt,name=sign_in_sessions_valid_from_date_time,json=signInSessionsValidFromDateTime,proto3" json:"sign_in_sessions_valid_from_date_time,omitempty"` - // A list for the user to enumerate their skills. - Skills []string `protobuf:"bytes,64,rep,name=skills,proto3" json:"skills,omitempty"` - // The state or province in the user's address. Supports $filter - State string `protobuf:"bytes,65,opt,name=state,proto3" json:"state,omitempty"` - // The street address of the user's place of business. - StreetAddress string `protobuf:"bytes,66,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` - // The user's surname (family name or last name). Supports $filter. - Surname string `protobuf:"bytes,67,opt,name=surname,proto3" json:"surname,omitempty"` - // A two letter country code (ISO standard 3166). Required for users that will be assigned licenses due to legal requirement to check for availability of services in countries. Examples include: "US", "JP", and "GB". Not nullable. Supports $filter. - UsageLocation string `protobuf:"bytes,68,opt,name=usage_location,json=usageLocation,proto3" json:"usage_location,omitempty"` - // The user principal name (UPN) of the user. The UPN is an Internet-style login name for the user based on the Internet standard RFC 822. - // By convention, this should map to the user's email name. The general format is alias@domain, - // where domain must be present in the tenant’s collection of verified domains. - // This property is required when a user is created. The verified domains for the tenant can be accessed - // from the verifiedDomains property of organization. Supports $filter and $orderby. - UserPrincipalName string `protobuf:"bytes,69,opt,name=user_principal_name,json=userPrincipalName,proto3" json:"user_principal_name,omitempty"` - // A string value that can be used to classify user types in your directory, such as “Member” and “Guest”. Supports $filter. - UserType string `protobuf:"bytes,70,opt,name=user_type,json=userType,proto3" json:"user_type,omitempty"` - // The users password. Used when updating the users password - // TODO: the username is stored as an identity? - Password string `protobuf:"bytes,71,opt,name=password,proto3" json:"password,omitempty"` - // The groups, directory roles and administrative units that the user is a member of. Read-only. Nullable. - MemberOf []*Group `protobuf:"bytes,100,rep,name=memberOf,proto3" json:"memberOf,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + SignInSessionsValidFromDateTime *timestamp.Timestamp `protobuf:"bytes,61,opt,name=sign_in_sessions_valid_from_date_time,json=signInSessionsValidFromDateTime,proto3" json:"sign_in_sessions_valid_from_date_time,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *Account) Reset() { *m = Account{} } @@ -543,9 +470,9 @@ func (m *Account) XXX_DiscardUnknown() { var xxx_messageInfo_Account proto.InternalMessageInfo -func (m *Account) GetAboutMe() string { +func (m *Account) GetId() string { if m != nil { - return m.AboutMe + return m.Id } return "" } @@ -557,74 +484,11 @@ func (m *Account) GetAccountEnabled() bool { return false } -func (m *Account) GetAgeGroup() string { +func (m *Account) GetIsResourceAccount() bool { if m != nil { - return m.AgeGroup + return m.IsResourceAccount } - return "" -} - -func (m *Account) GetAssignedLicenses() []*AssignedLicense { - if m != nil { - return m.AssignedLicenses - } - return nil -} - -func (m *Account) GetAssignedPlans() []*AssignedPlan { - if m != nil { - return m.AssignedPlans - } - return nil -} - -func (m *Account) GetBirthday() *timestamp.Timestamp { - if m != nil { - return m.Birthday - } - return nil -} - -func (m *Account) GetBusinessPhones() []string { - if m != nil { - return m.BusinessPhones - } - return nil -} - -func (m *Account) GetCity() string { - if m != nil { - return m.City - } - return "" -} - -func (m *Account) GetCompanyName() string { - if m != nil { - return m.CompanyName - } - return "" -} - -func (m *Account) GetConsentProvidedForMinor() string { - if m != nil { - return m.ConsentProvidedForMinor - } - return "" -} - -func (m *Account) GetCountry() string { - if m != nil { - return m.Country - } - return "" -} - -func (m *Account) GetCreatedDateTime() *timestamp.Timestamp { - if m != nil { - return m.CreatedDateTime - } - return nil + return false } func (m *Account) GetCreationType() string { @@ -634,76 +498,6 @@ func (m *Account) GetCreationType() string { return "" } -func (m *Account) GetDeletedDateTime() *timestamp.Timestamp { - if m != nil { - return m.DeletedDateTime - } - return nil -} - -func (m *Account) GetDepartment() string { - if m != nil { - return m.Department - } - return "" -} - -func (m *Account) GetDisplayName() string { - if m != nil { - return m.DisplayName - } - return "" -} - -func (m *Account) GetEmployeeId() string { - if m != nil { - return m.EmployeeId - } - return "" -} - -func (m *Account) GetExternalUserState() string { - if m != nil { - return m.ExternalUserState - } - return "" -} - -func (m *Account) GetExternalUserStateChangeDateTime() *timestamp.Timestamp { - if m != nil { - return m.ExternalUserStateChangeDateTime - } - return nil -} - -func (m *Account) GetFaxNumber() string { - if m != nil { - return m.FaxNumber - } - return "" -} - -func (m *Account) GetGivenName() string { - if m != nil { - return m.GivenName - } - return "" -} - -func (m *Account) GetHireDate() *timestamp.Timestamp { - if m != nil { - return m.HireDate - } - return nil -} - -func (m *Account) GetId() string { - if m != nil { - return m.Id - } - return "" -} - func (m *Account) GetIdentities() []*Identities { if m != nil { return m.Identities @@ -711,48 +505,34 @@ func (m *Account) GetIdentities() []*Identities { return nil } -func (m *Account) GetImAddresses() []string { +func (m *Account) GetDisplayName() string { if m != nil { - return m.ImAddresses - } - return nil -} - -func (m *Account) GetInterests() []string { - if m != nil { - return m.Interests - } - return nil -} - -func (m *Account) GetIsResourceAccount() bool { - if m != nil { - return m.IsResourceAccount - } - return false -} - -func (m *Account) GetJobTitle() string { - if m != nil { - return m.JobTitle + return m.DisplayName } return "" } -func (m *Account) GetLastPasswordChangeDateTime() *timestamp.Timestamp { +func (m *Account) GetUsername() string { if m != nil { - return m.LastPasswordChangeDateTime - } - return nil -} - -func (m *Account) GetLegalAgeGroupClassification() string { - if m != nil { - return m.LegalAgeGroupClassification + return m.Username } return "" } +func (m *Account) GetUidNumber() int64 { + if m != nil { + return m.UidNumber + } + return 0 +} + +func (m *Account) GetGidNumber() int64 { + if m != nil { + return m.GidNumber + } + return 0 +} + func (m *Account) GetMail() string { if m != nil { return m.Mail @@ -760,30 +540,58 @@ func (m *Account) GetMail() string { return "" } -func (m *Account) GetMailNickname() string { +func (m *Account) GetDescription() string { if m != nil { - return m.MailNickname + return m.Description } return "" } -func (m *Account) GetMobilePhone() string { +func (m *Account) GetPasswordProfile() *PasswordProfile { if m != nil { - return m.MobilePhone + return m.PasswordProfile + } + return nil +} + +func (m *Account) GetMemberOf() []*Group { + if m != nil { + return m.MemberOf + } + return nil +} + +func (m *Account) GetCreatedDateTime() *timestamp.Timestamp { + if m != nil { + return m.CreatedDateTime + } + return nil +} + +func (m *Account) GetDeletedDateTime() *timestamp.Timestamp { + if m != nil { + return m.DeletedDateTime + } + return nil +} + +func (m *Account) GetOnPremisesSyncEnabled() bool { + if m != nil { + return m.OnPremisesSyncEnabled + } + return false +} + +func (m *Account) GetOnPremisesImmutableId() string { + if m != nil { + return m.OnPremisesImmutableId } return "" } -func (m *Account) GetMySite() string { +func (m *Account) GetOnPremisesSecurityIdentifier() string { if m != nil { - return m.MySite - } - return "" -} - -func (m *Account) GetOfficeLocation() string { - if m != nil { - return m.OfficeLocation + return m.OnPremisesSecurityIdentifier } return "" } @@ -795,6 +603,13 @@ func (m *Account) GetOnPremisesDistinguishedName() string { return "" } +func (m *Account) GetOnPremisesSamAccountName() string { + if m != nil { + return m.OnPremisesSamAccountName + } + return "" +} + func (m *Account) GetOnPremisesDomainName() string { if m != nil { return m.OnPremisesDomainName @@ -802,9 +617,9 @@ func (m *Account) GetOnPremisesDomainName() string { return "" } -func (m *Account) GetOnPremisesImmutableId() string { +func (m *Account) GetOnPremisesUserPrincipalName() string { if m != nil { - return m.OnPremisesImmutableId + return m.OnPremisesUserPrincipalName } return "" } @@ -823,86 +638,16 @@ func (m *Account) GetOnPremisesProvisioningErrors() []*OnPremisesProvisioningErr return nil } -func (m *Account) GetOnPremisesSamAccountName() string { +func (m *Account) GetExternalUserState() string { if m != nil { - return m.OnPremisesSamAccountName + return m.ExternalUserState } return "" } -func (m *Account) GetOnPremisesSecurityIdentifier() string { +func (m *Account) GetExternalUserStateChangeDateTime() *timestamp.Timestamp { if m != nil { - return m.OnPremisesSecurityIdentifier - } - return "" -} - -func (m *Account) GetOnPremisesSyncEnabled() bool { - if m != nil { - return m.OnPremisesSyncEnabled - } - return false -} - -func (m *Account) GetOnPremisesUserPrincipalName() string { - if m != nil { - return m.OnPremisesUserPrincipalName - } - return "" -} - -func (m *Account) GetOtherMails() []string { - if m != nil { - return m.OtherMails - } - return nil -} - -func (m *Account) GetPasswordPolicies() string { - if m != nil { - return m.PasswordPolicies - } - return "" -} - -func (m *Account) GetPastProjects() []string { - if m != nil { - return m.PastProjects - } - return nil -} - -func (m *Account) GetPostalCode() string { - if m != nil { - return m.PostalCode - } - return "" -} - -func (m *Account) GetPreferredDataLocation() string { - if m != nil { - return m.PreferredDataLocation - } - return "" -} - -func (m *Account) GetPreferredLanguage() string { - if m != nil { - return m.PreferredLanguage - } - return "" -} - -func (m *Account) GetPreferredName() string { - if m != nil { - return m.PreferredName - } - return "" -} - -func (m *Account) GetProxyAddresses() []string { - if m != nil { - return m.ProxyAddresses + return m.ExternalUserStateChangeDateTime } return nil } @@ -914,27 +659,6 @@ func (m *Account) GetRefreshTokensValidFromDateTime() *timestamp.Timestamp { return nil } -func (m *Account) GetResponsibilities() []string { - if m != nil { - return m.Responsibilities - } - return nil -} - -func (m *Account) GetSchools() []string { - if m != nil { - return m.Schools - } - return nil -} - -func (m *Account) GetShowInAddressList() bool { - if m != nil { - return m.ShowInAddressList - } - return false -} - func (m *Account) GetSignInSessionsValidFromDateTime() *timestamp.Timestamp { if m != nil { return m.SignInSessionsValidFromDateTime @@ -942,86 +666,27 @@ func (m *Account) GetSignInSessionsValidFromDateTime() *timestamp.Timestamp { return nil } -func (m *Account) GetSkills() []string { - if m != nil { - return m.Skills - } - return nil -} - -func (m *Account) GetState() string { - if m != nil { - return m.State - } - return "" -} - -func (m *Account) GetStreetAddress() string { - if m != nil { - return m.StreetAddress - } - return "" -} - -func (m *Account) GetSurname() string { - if m != nil { - return m.Surname - } - return "" -} - -func (m *Account) GetUsageLocation() string { - if m != nil { - return m.UsageLocation - } - return "" -} - -func (m *Account) GetUserPrincipalName() string { - if m != nil { - return m.UserPrincipalName - } - return "" -} - -func (m *Account) GetUserType() string { - if m != nil { - return m.UserType - } - return "" -} - -func (m *Account) GetPassword() string { - if m != nil { - return m.Password - } - return "" -} - -func (m *Account) GetMemberOf() []*Group { - if m != nil { - return m.MemberOf - } - return nil -} - +// Identities Represents an identity used to sign in to a user account. +// An identity can be provided by ocis, by organizations, or by social identity providers such as Facebook, Google, or Microsoft, that are tied to a user account. +// This enables the user to sign in to the user account with any of those associated identities. +// They are also used to keep a history of old usernames. type Identities struct { // Specifies the user sign-in types in your directory, such as `emailAddress`, `userName` or `federated`. // Here, federated represents a unique identifier for a user from an issuer, that can be in any format chosen by the issuer. - // Additional validation is enforced on *issuerAssignedId* when the sign-in type is set to `emailAddress` or `userName`. + // Additional validation is enforced on *issuer_assigned_id* when the sign-in type is set to `emailAddress` or `userName`. // This property can also be set to any custom string. SignInType string `protobuf:"bytes,1,opt,name=sign_in_type,json=signInType,proto3" json:"sign_in_type,omitempty"` // Specifies the issuer of the identity, for example facebook.com. // For local accounts (where signInType is not federated), this property is // the local B2C tenant default domain name, for example contoso.onmicrosoft.com. // For external users from other Azure AD organization, this will be the domain of - // the federated organization, for example contoso.com. + // the federated organization, for example contoso.com. // Supports $filter. 512 character limit. Issuer string `protobuf:"bytes,2,opt,name=issuer,proto3" json:"issuer,omitempty"` // Specifies the unique identifier assigned to the user by the issuer. The combination of *issuer* and *issuerAssignedId* must be unique within the organization. Represents the sign-in name for the user, when signInType is set to emailAddress or userName (also known as local accounts). // When *signInType* is set to: // * `emailAddress`, (or starts with `emailAddress` like `emailAddress1`) *issuerAssignedId* must be a valid email address - // * `userName`, issuerAssignedId must be a valid local part of an email address + // * `userName`, issuer_assigned_id must be a valid local part of an email address // Supports $filter. 512 character limit. IssuerAssignedId string `protobuf:"bytes,3,opt,name=issuer_assigned_id,json=issuerAssignedId,proto3" json:"issuer_assigned_id,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -1075,6 +740,86 @@ func (m *Identities) GetIssuerAssignedId() string { return "" } +type PasswordProfile struct { + // The password for the user. This property is required when a user is created. + // It can be updated, but the user will be required to change the password on the next login. + // The password must satisfy minimum requirements as specified by the user’s passwordPolicies property. By default, a strong password is required. + Password string `protobuf:"bytes,1,opt,name=password,proto3" json:"password,omitempty"` + // The time when this account last changed their password. + LastPasswordChangeDateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=last_password_change_date_time,json=lastPasswordChangeDateTime,proto3" json:"last_password_change_date_time,omitempty"` + // Specifies password policies for the user. + //This value is an enumeration with one possible value being “DisableStrongPassword”, which allows weaker passwords than the default policy to be specified. + // “DisablePasswordExpiration” can also be specified. + PasswordPolicies []string `protobuf:"bytes,3,rep,name=password_policies,json=passwordPolicies,proto3" json:"password_policies,omitempty"` + // *true* if the user must change her password on the next login; otherwise false. + ForceChangePasswordNextSignIn bool `protobuf:"varint,4,opt,name=force_change_password_next_sign_in,json=forceChangePasswordNextSignIn,proto3" json:"force_change_password_next_sign_in,omitempty"` + // If *true*, at next sign-in, the user must perform a multi-factor authentication (MFA) before being forced to change their password. The behavior is identical to forceChangePasswordNextSignIn except that the user is required to first perform a multi-factor authentication before password change. After a password change, this property will be automatically reset to false. If not set, default is false. + ForceChangePasswordNextSignInWithMfa bool `protobuf:"varint,5,opt,name=force_change_password_next_sign_in_with_mfa,json=forceChangePasswordNextSignInWithMfa,proto3" json:"force_change_password_next_sign_in_with_mfa,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PasswordProfile) Reset() { *m = PasswordProfile{} } +func (m *PasswordProfile) String() string { return proto.CompactTextString(m) } +func (*PasswordProfile) ProtoMessage() {} +func (*PasswordProfile) Descriptor() ([]byte, []int) { + return fileDescriptor_e1e7723af4c007b7, []int{8} +} + +func (m *PasswordProfile) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PasswordProfile.Unmarshal(m, b) +} +func (m *PasswordProfile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PasswordProfile.Marshal(b, m, deterministic) +} +func (m *PasswordProfile) XXX_Merge(src proto.Message) { + xxx_messageInfo_PasswordProfile.Merge(m, src) +} +func (m *PasswordProfile) XXX_Size() int { + return xxx_messageInfo_PasswordProfile.Size(m) +} +func (m *PasswordProfile) XXX_DiscardUnknown() { + xxx_messageInfo_PasswordProfile.DiscardUnknown(m) +} + +var xxx_messageInfo_PasswordProfile proto.InternalMessageInfo + +func (m *PasswordProfile) GetPassword() string { + if m != nil { + return m.Password + } + return "" +} + +func (m *PasswordProfile) GetLastPasswordChangeDateTime() *timestamp.Timestamp { + if m != nil { + return m.LastPasswordChangeDateTime + } + return nil +} + +func (m *PasswordProfile) GetPasswordPolicies() []string { + if m != nil { + return m.PasswordPolicies + } + return nil +} + +func (m *PasswordProfile) GetForceChangePasswordNextSignIn() bool { + if m != nil { + return m.ForceChangePasswordNextSignIn + } + return false +} + +func (m *PasswordProfile) GetForceChangePasswordNextSignInWithMfa() bool { + if m != nil { + return m.ForceChangePasswordNextSignInWithMfa + } + return false +} + type ListGroupsRequest struct { // Optional. The maximum number of groups to return in the response PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` @@ -1112,7 +857,7 @@ func (m *ListGroupsRequest) Reset() { *m = ListGroupsRequest{} } func (m *ListGroupsRequest) String() string { return proto.CompactTextString(m) } func (*ListGroupsRequest) ProtoMessage() {} func (*ListGroupsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_e1e7723af4c007b7, []int{8} + return fileDescriptor_e1e7723af4c007b7, []int{9} } func (m *ListGroupsRequest) XXX_Unmarshal(b []byte) error { @@ -1178,7 +923,7 @@ func (m *ListGroupsResponse) Reset() { *m = ListGroupsResponse{} } func (m *ListGroupsResponse) String() string { return proto.CompactTextString(m) } func (*ListGroupsResponse) ProtoMessage() {} func (*ListGroupsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_e1e7723af4c007b7, []int{9} + return fileDescriptor_e1e7723af4c007b7, []int{10} } func (m *ListGroupsResponse) XXX_Unmarshal(b []byte) error { @@ -1224,7 +969,7 @@ func (m *GetGroupRequest) Reset() { *m = GetGroupRequest{} } func (m *GetGroupRequest) String() string { return proto.CompactTextString(m) } func (*GetGroupRequest) ProtoMessage() {} func (*GetGroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_e1e7723af4c007b7, []int{10} + return fileDescriptor_e1e7723af4c007b7, []int{11} } func (m *GetGroupRequest) XXX_Unmarshal(b []byte) error { @@ -1266,7 +1011,7 @@ func (m *CreateGroupRequest) Reset() { *m = CreateGroupRequest{} } func (m *CreateGroupRequest) String() string { return proto.CompactTextString(m) } func (*CreateGroupRequest) ProtoMessage() {} func (*CreateGroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_e1e7723af4c007b7, []int{11} + return fileDescriptor_e1e7723af4c007b7, []int{12} } func (m *CreateGroupRequest) XXX_Unmarshal(b []byte) error { @@ -1316,7 +1061,7 @@ func (m *UpdateGroupRequest) Reset() { *m = UpdateGroupRequest{} } func (m *UpdateGroupRequest) String() string { return proto.CompactTextString(m) } func (*UpdateGroupRequest) ProtoMessage() {} func (*UpdateGroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_e1e7723af4c007b7, []int{12} + return fileDescriptor_e1e7723af4c007b7, []int{13} } func (m *UpdateGroupRequest) XXX_Unmarshal(b []byte) error { @@ -1362,7 +1107,7 @@ func (m *DeleteGroupRequest) Reset() { *m = DeleteGroupRequest{} } func (m *DeleteGroupRequest) String() string { return proto.CompactTextString(m) } func (*DeleteGroupRequest) ProtoMessage() {} func (*DeleteGroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_e1e7723af4c007b7, []int{13} + return fileDescriptor_e1e7723af4c007b7, []int{14} } func (m *DeleteGroupRequest) XXX_Unmarshal(b []byte) error { @@ -1402,7 +1147,7 @@ func (m *AddMemberRequest) Reset() { *m = AddMemberRequest{} } func (m *AddMemberRequest) String() string { return proto.CompactTextString(m) } func (*AddMemberRequest) ProtoMessage() {} func (*AddMemberRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_e1e7723af4c007b7, []int{14} + return fileDescriptor_e1e7723af4c007b7, []int{15} } func (m *AddMemberRequest) XXX_Unmarshal(b []byte) error { @@ -1443,7 +1188,7 @@ func (m *RemoveMemberRequest) Reset() { *m = RemoveMemberRequest{} } func (m *RemoveMemberRequest) String() string { return proto.CompactTextString(m) } func (*RemoveMemberRequest) ProtoMessage() {} func (*RemoveMemberRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_e1e7723af4c007b7, []int{15} + return fileDescriptor_e1e7723af4c007b7, []int{16} } func (m *RemoveMemberRequest) XXX_Unmarshal(b []byte) error { @@ -1476,6 +1221,9 @@ type ListMembersRequest struct { // Optional. A pagination token returned from a previous call to `Get` // that indicates from where search should continue PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Optional. Used to specify a subset of fields that should be + // returned by a get operation or modified by an update operation. + FieldMask *field_mask.FieldMask `protobuf:"bytes,3,opt,name=field_mask,json=fieldMask,proto3" json:"field_mask,omitempty"` // Optional. Search criteria used to select the groups to return. // If no search criteria is specified then all groups will be // returned @@ -1494,7 +1242,7 @@ type ListMembersRequest struct { // starts with "Th" // * Query `display_name=\\"Test String\\"` returns groups with // display names that include both "Test" and "String" - Query string `protobuf:"bytes,3,opt,name=query,proto3" json:"query,omitempty"` + Query string `protobuf:"bytes,4,opt,name=query,proto3" json:"query,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1504,7 +1252,7 @@ func (m *ListMembersRequest) Reset() { *m = ListMembersRequest{} } func (m *ListMembersRequest) String() string { return proto.CompactTextString(m) } func (*ListMembersRequest) ProtoMessage() {} func (*ListMembersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_e1e7723af4c007b7, []int{16} + return fileDescriptor_e1e7723af4c007b7, []int{17} } func (m *ListMembersRequest) XXX_Unmarshal(b []byte) error { @@ -1539,6 +1287,13 @@ func (m *ListMembersRequest) GetPageToken() string { return "" } +func (m *ListMembersRequest) GetFieldMask() *field_mask.FieldMask { + if m != nil { + return m.FieldMask + } + return nil +} + func (m *ListMembersRequest) GetQuery() string { if m != nil { return m.Query @@ -1563,7 +1318,7 @@ func (m *ListMembersResponse) Reset() { *m = ListMembersResponse{} } func (m *ListMembersResponse) String() string { return proto.CompactTextString(m) } func (*ListMembersResponse) ProtoMessage() {} func (*ListMembersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_e1e7723af4c007b7, []int{17} + return fileDescriptor_e1e7723af4c007b7, []int{18} } func (m *ListMembersResponse) XXX_Unmarshal(b []byte) error { @@ -1599,143 +1354,82 @@ func (m *ListMembersResponse) GetNextPageToken() string { } type Group struct { - // Indicates if people external to the organization can send messages to the group. Default value is false. - // Returned only on $select. - AllowExternalSenders bool `protobuf:"varint,1,opt,name=allow_external_senders,json=allowExternalSenders,proto3" json:"allow_external_senders,omitempty"` - // The list of sensitivity label pairs (label ID, label name) associated with an Office 365 group. - //Returned only on $select. Read-only. - AssignedLabels []*AssignedLabel `protobuf:"bytes,2,rep,name=assigned_labels,json=assignedLabels,proto3" json:"assigned_labels,omitempty"` - // The licenses that are assigned to the group. - // Returned only on $select. Read-only. - AssignedLicenses []*AssignedLicense `protobuf:"bytes,3,rep,name=assigned_licenses,json=assignedLicenses,proto3" json:"assigned_licenses,omitempty"` - // Indicates if new members added to the group will be auto-subscribed to receive email notifications. You can set this property in a PATCH request for the group; do not set it in the initial POST request that creates the group. Default value is false. - // Returned only on $select. - AutoSubscribeNewMembers bool `protobuf:"varint,4,opt,name=auto_subscribe_new_members,json=autoSubscribeNewMembers,proto3" json:"auto_subscribe_new_members,omitempty"` - // Describes a classification for the group (such as low, medium or high business impact). Valid values for this property are defined by creating a ClassificationList setting value, based on the template definition. - // Returned by default. - Classification string `protobuf:"bytes,5,opt,name=classification,proto3" json:"classification,omitempty"` - // App ID of the app used to create the group. Can be null for some groups. - // Returned by default. Read-only. Supports $filter. - CreatedByAppId string `protobuf:"bytes,6,opt,name=created_by_app_id,json=createdByAppId,proto3" json:"created_by_app_id,omitempty"` + // The unique identifier for the group. + // Returned by default. Inherited from directoryObject. Key. Not nullable. Read-only. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // The display name for the group. This property is required when a group is created and cannot be cleared during updates. + // Returned by default. Supports $filter and $orderby. + // groupofnames MUST cn + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // Users, contacts, and groups that are members of this group. HTTP Methods: GET (supported for all groups), POST (supported for security groups and mail-enabled security groups), DELETE (supported only for security groups) Read-only. Nullable. + // TODO accounts (users) only for now, we can add groups with the dedicated message using oneof construct later + Members []*Account `protobuf:"bytes,3,rep,name=members,proto3" json:"members,omitempty"` + // groupofnames MAY businessCategory + // groupofnames MAY o + // groupofnames MAY ou + // groupofnames MAY owner, SINGLE-VALUE but there might be multiple owners + Owners []*Account `protobuf:"bytes,4,rep,name=owners,proto3" json:"owners,omitempty"` + // An optional description for the group. Returned by default. + // groupofnames MAY description + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + // used for exposing the user using ldap + // posixgroup MUST gidnumber + GidNumber int64 `protobuf:"varint,6,opt,name=gid_number,json=gidNumber,proto3" json:"gid_number,omitempty"` // Timestamp of when the group was created. The value cannot be modified and is automatically populated when the group is created // Returned by default. Read-only. CreatedDateTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=created_date_time,json=createdDateTime,proto3" json:"created_date_time,omitempty"` // For some Azure Active Directory objects (user, group, application), if the object is deleted, it is first logically deleted, and this property is updated with the date and time when the object was deleted. Otherwise this property is null. If the object is restored, this property is updated to null. // Returned by default. Read-only. DeletedDateTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=deleted_date_time,json=deletedDateTime,proto3" json:"deleted_date_time,omitempty"` - // An optional description for the group. Returned by default. - Description string `protobuf:"bytes,9,opt,name=description,proto3" json:"description,omitempty"` - // The display name for the group. This property is required when a group is created and cannot be cleared during updates. - // Returned by default. Supports $filter and $orderby. - DisplayName string `protobuf:"bytes,10,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` // Timestamp of when the group is set to expire. The value cannot be modified and is automatically populated when the group is created. // Returned by default. Read-only. - ExpirationDateTime *timestamp.Timestamp `protobuf:"bytes,11,opt,name=expiration_date_time,json=expirationDateTime,proto3" json:"expiration_date_time,omitempty"` - // Specifies the group type and its membership. - // If the collection contains `Unified` then the group is an Office 365 group; otherwise it's a security group. - // If the collection includes `DynamicMembership`, the group has dynamic membership; otherwise, membership is static. - // Returned by default. Supports $filter. - GroupTypes []string `protobuf:"bytes,12,rep,name=group_types,json=groupTypes,proto3" json:"group_types,omitempty"` - // Indicates whether there are members in this group that have license errors from its group-based license assignment. - // This property is never returned on a GET operation. You can use it as a $filter argument to get groups that have members with license errors (that is, filter for this property being true). - HasMembersWithLicenseErrors bool `protobuf:"varint,13,opt,name=has_members_with_license_errors,json=hasMembersWithLicenseErrors,proto3" json:"has_members_with_license_errors,omitempty"` + ExpirationDateTime *timestamp.Timestamp `protobuf:"bytes,9,opt,name=expiration_date_time,json=expirationDateTime,proto3" json:"expiration_date_time,omitempty"` // True if the group is not displayed in certain parts of the Outlook user interface: // in the Address Book, in address lists for selecting message recipients, and in the Browse Groups dialog for searching groups; false otherwise. Default value is false. // Returned only on $select. - HideFromAddressLists bool `protobuf:"varint,14,opt,name=hide_from_address_lists,json=hideFromAddressLists,proto3" json:"hide_from_address_lists,omitempty"` - // True if the group is not displayed in Outlook clients, such as Outlook for Windows and Outlook on the web, false otherwise. Default value is false. - // Returned only on $select. - HideFromOutlookClients bool `protobuf:"varint,15,opt,name=hide_from_outlook_clients,json=hideFromOutlookClients,proto3" json:"hide_from_outlook_clients,omitempty"` - // The unique identifier for the group. - // Returned by default. Inherited from directoryObject. Key. Not nullable. Read-only. - Id string `protobuf:"bytes,16,opt,name=id,proto3" json:"id,omitempty"` - // Indicates whether the signed-in user is subscribed to receive email conversations. Default value is true. - // Returned only on $select. - IsSubscribedByMail bool `protobuf:"varint,17,opt,name=is_subscribed_by_mail,json=isSubscribedByMail,proto3" json:"is_subscribed_by_mail,omitempty"` - // Indicates status of the group license assignment to all members of the group. - // Possible values: `QueuedForProcessing`, `ProcessingInProgress`, and `ProcessingComplete`. - // Returned only on $select. Read-only. - LicenseProcessingState string `protobuf:"bytes,18,opt,name=license_processing_state,json=licenseProcessingState,proto3" json:"license_processing_state,omitempty"` - // The SMTP address for the group, for example, "serviceadmins@contoso.onmicrosoft.com". - // Returned by default. Read-only. Supports $filter. - Mail string `protobuf:"bytes,19,opt,name=mail,proto3" json:"mail,omitempty"` - // Specifies whether the group is mail-enabled. + HideFromAddressLists bool `protobuf:"varint,10,opt,name=hide_from_address_lists,json=hideFromAddressLists,proto3" json:"hide_from_address_lists,omitempty"` + // Specifies the visibility of an Office 365 group. Possible values are: Private, Public, or Hiddenmembership; blank values are treated as public. See group visibility options to learn more. + // Visibility can be set only when a group is created; it is not editable. // Returned by default. - MailEnabled bool `protobuf:"varint,20,opt,name=mail_enabled,json=mailEnabled,proto3" json:"mail_enabled,omitempty"` - // The mail alias for the group, unique in the organization. This property must be specified when a group is created. - // Returned by default. Supports $filter. - MailNickname string `protobuf:"bytes,21,opt,name=mail_nickname,json=mailNickname,proto3" json:"mail_nickname,omitempty"` - // The rule that determines members for this group if the group is a dynamic group (groupTypes contains DynamicMembership). For more information about the syntax of the membership rule, see Membership Rules syntax. - // Returned by default. - MembershipRule string `protobuf:"bytes,22,opt,name=membership_rule,json=membershipRule,proto3" json:"membership_rule,omitempty"` - // Indicates whether the dynamic membership processing is on or paused. Possible values are "On" or "Paused". - // Returned by default. - MembershipRuleProcessingState string `protobuf:"bytes,23,opt,name=membership_rule_processing_state,json=membershipRuleProcessingState,proto3" json:"membership_rule_processing_state,omitempty"` - // Contains the on-premises domain FQDN, also called dnsDomainName synchronized from the on-premises directory. The property is only populated for customers who are synchronizing their on-premises directory to Azure Active Directory via Azure AD Connect. - // Returned by default. Read-only. - OnPremisesDomainName string `protobuf:"bytes,24,opt,name=on_premises_domain_name,json=onPremisesDomainName,proto3" json:"on_premises_domain_name,omitempty"` - // Indicates the last time at which the group was synced with the on-premises directory. - // Returned by default. Read-only. Supports $filter. - OnPremisesLastSyncDateTime string `protobuf:"bytes,25,opt,name=on_premises_last_sync_date_time,json=onPremisesLastSyncDateTime,proto3" json:"on_premises_last_sync_date_time,omitempty"` - // Contains the on-premises netBios name synchronized from the on-premises directory. The property is only populated for customers who are synchronizing their on-premises directory to Azure Active Directory via Azure AD Connect. - // Returned by default. Read-only. - OnPremisesNetBiosName string `protobuf:"bytes,26,opt,name=on_premises_net_bios_name,json=onPremisesNetBiosName,proto3" json:"on_premises_net_bios_name,omitempty"` - // Errors when using synchronization during provisioning. - OnPremisesProvisioningErrors []*OnPremisesProvisioningError `protobuf:"bytes,27,rep,name=on_premises_provisioning_errors,json=onPremisesProvisioningErrors,proto3" json:"on_premises_provisioning_errors,omitempty"` - // Contains the on-premises `samAccountName` synchronized from the on-premises directory. - // The property is only populated for customers who are synchronizing their on-premises directory to ocis-accounts. Returned by default. Read-only. - OnPremisesSamAccountName string `protobuf:"bytes,28,opt,name=on_premises_sam_account_name,json=onPremisesSamAccountName,proto3" json:"on_premises_sam_account_name,omitempty"` - // Contains the on-premises security identifier (SID) for the group that was synchronized from on-premises to the cloud. Returned by default. Read-only. - OnPremisesSecurityIdentifier string `protobuf:"bytes,29,opt,name=on_premises_security_identifier,json=onPremisesSecurityIdentifier,proto3" json:"on_premises_security_identifier,omitempty"` + Visibility string `protobuf:"bytes,11,opt,name=visibility,proto3" json:"visibility,omitempty"` // *true* if this group is synced from an on-premises directory; // *false* if this group was originally synced from an on-premises directory but is no longer synced; // null if this object has never been synced from an on-premises directory (default). // Returned by default. Read-only. Supports $filter. - OnPremisesSyncEnabled bool `protobuf:"varint,30,opt,name=on_premises_sync_enabled,json=onPremisesSyncEnabled,proto3" json:"on_premises_sync_enabled,omitempty"` - // The preferred data location for the group. For more information, see OneDrive Online Multi-Geo. https://docs.microsoft.com/sharepoint/dev/solution-guidance/multigeo-introduction string preferredDataLocation = 53; - PreferredDataLocation string `protobuf:"bytes,31,opt,name=preferred_data_location,json=preferredDataLocation,proto3" json:"preferred_data_location,omitempty"` - // The preferred language for the user. Should follow ISO 639-1 Code; for example "en-US". - PreferredLanguage string `protobuf:"bytes,32,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` - // Email addresses for the group that direct to the same group mailbox. - // For example: ["SMTP: bob@contoso.com", "smtp: bob@sales.contoso.com"]. - // The any operator is required for filter expressions on multi-valued properties. - // Returned by default. Read-only. Not nullable. Supports $filter. - ProxyAddresses []string `protobuf:"bytes,33,rep,name=proxy_addresses,json=proxyAddresses,proto3" json:"proxy_addresses,omitempty"` - // Timestamp of when the group was last renewed. - // This cannot be modified directly and is only updated via the renew service action. + OnPremisesSyncEnabled bool `protobuf:"varint,20,opt,name=on_premises_sync_enabled,json=onPremisesSyncEnabled,proto3" json:"on_premises_sync_enabled,omitempty"` + // This property is used to associate an on-premises LDAP user to the ocis account object. + // This property must be specified when creating a new user account in the Graph if you are using a federated domain for the user’s userPrincipalName (UPN) property. + // Important: The $ and _ characters cannot be used when specifying this property. Supports $filter. + OnPremisesImmutableId string `protobuf:"bytes,21,opt,name=on_premises_immutable_id,json=onPremisesImmutableId,proto3" json:"on_premises_immutable_id,omitempty"` + // Contains the on-premises security identifier (SID) for the group that was synchronized from on-premises to the cloud. Returned by default. Read-only. + OnPremisesSecurityIdentifier string `protobuf:"bytes,22,opt,name=on_premises_security_identifier,json=onPremisesSecurityIdentifier,proto3" json:"on_premises_security_identifier,omitempty"` + // Contains the on-premises LDAP `distinguished name` or `DN`. + // The property is only populated for customers who are synchronizing their on-premises directory to ocis-accounts. Read-only. + OnPremisesDistinguishedName string `protobuf:"bytes,23,opt,name=on_premises_distinguished_name,json=onPremisesDistinguishedName,proto3" json:"on_premises_distinguished_name,omitempty"` + // Contains the on-premises `samAccountName` synchronized from the on-premises directory. + // The property is only populated for customers who are synchronizing their on-premises directory to ocis-accounts. Returned by default. Read-only. + OnPremisesSamAccountName string `protobuf:"bytes,24,opt,name=on_premises_sam_account_name,json=onPremisesSamAccountName,proto3" json:"on_premises_sam_account_name,omitempty"` + // Contains the on-premises domain FQDN, also called dnsDomainName synchronized from the on-premises directory. The property is only populated for customers who are synchronizing their on-premises directory to Azure Active Directory via Azure AD Connect. // Returned by default. Read-only. - RenewedDateTime *timestamp.Timestamp `protobuf:"bytes,34,opt,name=renewed_date_time,json=renewedDateTime,proto3" json:"renewed_date_time,omitempty"` - // Specifies the group behaviors that can be set for an Office 365 group during creation. This can be set only as part of creation (POST). Possible values are `AllowOnlyMembersToPost`, `HideGroupInOutlook`, `SubscribeNewGroupMembers`, `WelcomeEmailDisable`. For more information, see Set Microsoft 365 group behaviors and provisioning options. https://docs.microsoft.com/en-us/graph/group-set-options - ResourceBehaviorOptions []string `protobuf:"bytes,35,rep,name=resource_behavior_options,json=resourceBehaviorOptions,proto3" json:"resource_behavior_options,omitempty"` - // Specifies the group resources that are provisioned as part of Office 365 group creation, that are not normally part of default group creation. Possible value is `Team`. For more information, see Set Microsoft 365 group behaviors and provisioning options. https://docs.microsoft.com/en-us/graph/group-set-options - ResourceProvisioningOptions []string `protobuf:"bytes,36,rep,name=resource_provisioning_options,json=resourceProvisioningOptions,proto3" json:"resource_provisioning_options,omitempty"` - // Specifies whether the group is a security group. - // Returned by default. Supports $filter. - SecurityEnabled bool `protobuf:"varint,37,opt,name=security_enabled,json=securityEnabled,proto3" json:"security_enabled,omitempty"` - // Security identifier of the group, used in Windows scenarios. - // Returned by default. - SecurityIdentifier string `protobuf:"bytes,38,opt,name=security_identifier,json=securityIdentifier,proto3" json:"security_identifier,omitempty"` - // Specifies an Office 365 group's color theme. Possible values are Teal, Purple, Green, Blue, Pink, Orange or Red. - // Returned by default. - Theme string `protobuf:"bytes,39,opt,name=theme,proto3" json:"theme,omitempty"` - // Specifies the visibility of an Office 365 group. Possible values are: Private, Public, or Hiddenmembership; blank values are treated as public. See group visibility options to learn more. - // Visibility can be set only when a group is created; it is not editable. - // Visibility is supported only for unified groups; it is not supported for security groups. - // Returned by default. - Visibility string `protobuf:"bytes,43,opt,name=visibility,proto3" json:"visibility,omitempty"` - // Users, contacts, and groups that are members of this group. HTTP Methods: GET (supported for all groups), POST (supported for security groups and mail-enabled security groups), DELETE (supported only for security groups) Read-only. Nullable. - // TODO accounts (users) only for now, we can add groups with the dedicated message using oneof construct later - Members []*Account `protobuf:"bytes,100,rep,name=members,proto3" json:"members,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + OnPremisesDomainName string `protobuf:"bytes,25,opt,name=on_premises_domain_name,json=onPremisesDomainName,proto3" json:"on_premises_domain_name,omitempty"` + // Contains the on-premises netBios name synchronized from the on-premises directory. The property is only populated for customers who are synchronizing their on-premises directory to Azure Active Directory via Azure AD Connect. + // Returned by default. Read-only. + OnPremisesNetBiosName string `protobuf:"bytes,26,opt,name=on_premises_net_bios_name,json=onPremisesNetBiosName,proto3" json:"on_premises_net_bios_name,omitempty"` + // Indicates the last time at which the group was synced with the on-premises directory. + // Returned by default. Read-only. Supports $filter. + OnPremisesLastSyncDateTime string `protobuf:"bytes,27,opt,name=on_premises_last_sync_date_time,json=onPremisesLastSyncDateTime,proto3" json:"on_premises_last_sync_date_time,omitempty"` + // Errors when using synchronization during provisioning. + OnPremisesProvisioningErrors []*OnPremisesProvisioningError `protobuf:"bytes,28,rep,name=on_premises_provisioning_errors,json=onPremisesProvisioningErrors,proto3" json:"on_premises_provisioning_errors,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *Group) Reset() { *m = Group{} } func (m *Group) String() string { return proto.CompactTextString(m) } func (*Group) ProtoMessage() {} func (*Group) Descriptor() ([]byte, []int) { - return fileDescriptor_e1e7723af4c007b7, []int{18} + return fileDescriptor_e1e7723af4c007b7, []int{19} } func (m *Group) XXX_Unmarshal(b []byte) error { @@ -1756,48 +1450,48 @@ func (m *Group) XXX_DiscardUnknown() { var xxx_messageInfo_Group proto.InternalMessageInfo -func (m *Group) GetAllowExternalSenders() bool { +func (m *Group) GetId() string { if m != nil { - return m.AllowExternalSenders - } - return false -} - -func (m *Group) GetAssignedLabels() []*AssignedLabel { - if m != nil { - return m.AssignedLabels - } - return nil -} - -func (m *Group) GetAssignedLicenses() []*AssignedLicense { - if m != nil { - return m.AssignedLicenses - } - return nil -} - -func (m *Group) GetAutoSubscribeNewMembers() bool { - if m != nil { - return m.AutoSubscribeNewMembers - } - return false -} - -func (m *Group) GetClassification() string { - if m != nil { - return m.Classification + return m.Id } return "" } -func (m *Group) GetCreatedByAppId() string { +func (m *Group) GetDisplayName() string { if m != nil { - return m.CreatedByAppId + return m.DisplayName } return "" } +func (m *Group) GetMembers() []*Account { + if m != nil { + return m.Members + } + return nil +} + +func (m *Group) GetOwners() []*Account { + if m != nil { + return m.Owners + } + return nil +} + +func (m *Group) GetDescription() string { + if m != nil { + return m.Description + } + return "" +} + +func (m *Group) GetGidNumber() int64 { + if m != nil { + return m.GidNumber + } + return 0 +} + func (m *Group) GetCreatedDateTime() *timestamp.Timestamp { if m != nil { return m.CreatedDateTime @@ -1812,20 +1506,6 @@ func (m *Group) GetDeletedDateTime() *timestamp.Timestamp { return nil } -func (m *Group) GetDescription() string { - if m != nil { - return m.Description - } - return "" -} - -func (m *Group) GetDisplayName() string { - if m != nil { - return m.DisplayName - } - return "" -} - func (m *Group) GetExpirationDateTime() *timestamp.Timestamp { if m != nil { return m.ExpirationDateTime @@ -1833,20 +1513,6 @@ func (m *Group) GetExpirationDateTime() *timestamp.Timestamp { return nil } -func (m *Group) GetGroupTypes() []string { - if m != nil { - return m.GroupTypes - } - return nil -} - -func (m *Group) GetHasMembersWithLicenseErrors() bool { - if m != nil { - return m.HasMembersWithLicenseErrors - } - return false -} - func (m *Group) GetHideFromAddressLists() bool { if m != nil { return m.HideFromAddressLists @@ -1854,107 +1520,9 @@ func (m *Group) GetHideFromAddressLists() bool { return false } -func (m *Group) GetHideFromOutlookClients() bool { +func (m *Group) GetVisibility() string { if m != nil { - return m.HideFromOutlookClients - } - return false -} - -func (m *Group) GetId() string { - if m != nil { - return m.Id - } - return "" -} - -func (m *Group) GetIsSubscribedByMail() bool { - if m != nil { - return m.IsSubscribedByMail - } - return false -} - -func (m *Group) GetLicenseProcessingState() string { - if m != nil { - return m.LicenseProcessingState - } - return "" -} - -func (m *Group) GetMail() string { - if m != nil { - return m.Mail - } - return "" -} - -func (m *Group) GetMailEnabled() bool { - if m != nil { - return m.MailEnabled - } - return false -} - -func (m *Group) GetMailNickname() string { - if m != nil { - return m.MailNickname - } - return "" -} - -func (m *Group) GetMembershipRule() string { - if m != nil { - return m.MembershipRule - } - return "" -} - -func (m *Group) GetMembershipRuleProcessingState() string { - if m != nil { - return m.MembershipRuleProcessingState - } - return "" -} - -func (m *Group) GetOnPremisesDomainName() string { - if m != nil { - return m.OnPremisesDomainName - } - return "" -} - -func (m *Group) GetOnPremisesLastSyncDateTime() string { - if m != nil { - return m.OnPremisesLastSyncDateTime - } - return "" -} - -func (m *Group) GetOnPremisesNetBiosName() string { - if m != nil { - return m.OnPremisesNetBiosName - } - return "" -} - -func (m *Group) GetOnPremisesProvisioningErrors() []*OnPremisesProvisioningError { - if m != nil { - return m.OnPremisesProvisioningErrors - } - return nil -} - -func (m *Group) GetOnPremisesSamAccountName() string { - if m != nil { - return m.OnPremisesSamAccountName - } - return "" -} - -func (m *Group) GetOnPremisesSecurityIdentifier() string { - if m != nil { - return m.OnPremisesSecurityIdentifier + return m.Visibility } return "" } @@ -1966,246 +1534,62 @@ func (m *Group) GetOnPremisesSyncEnabled() bool { return false } -func (m *Group) GetPreferredDataLocation() string { +func (m *Group) GetOnPremisesImmutableId() string { if m != nil { - return m.PreferredDataLocation + return m.OnPremisesImmutableId } return "" } -func (m *Group) GetPreferredLanguage() string { +func (m *Group) GetOnPremisesSecurityIdentifier() string { if m != nil { - return m.PreferredLanguage + return m.OnPremisesSecurityIdentifier } return "" } -func (m *Group) GetProxyAddresses() []string { +func (m *Group) GetOnPremisesDistinguishedName() string { if m != nil { - return m.ProxyAddresses + return m.OnPremisesDistinguishedName + } + return "" +} + +func (m *Group) GetOnPremisesSamAccountName() string { + if m != nil { + return m.OnPremisesSamAccountName + } + return "" +} + +func (m *Group) GetOnPremisesDomainName() string { + if m != nil { + return m.OnPremisesDomainName + } + return "" +} + +func (m *Group) GetOnPremisesNetBiosName() string { + if m != nil { + return m.OnPremisesNetBiosName + } + return "" +} + +func (m *Group) GetOnPremisesLastSyncDateTime() string { + if m != nil { + return m.OnPremisesLastSyncDateTime + } + return "" +} + +func (m *Group) GetOnPremisesProvisioningErrors() []*OnPremisesProvisioningError { + if m != nil { + return m.OnPremisesProvisioningErrors } return nil } -func (m *Group) GetRenewedDateTime() *timestamp.Timestamp { - if m != nil { - return m.RenewedDateTime - } - return nil -} - -func (m *Group) GetResourceBehaviorOptions() []string { - if m != nil { - return m.ResourceBehaviorOptions - } - return nil -} - -func (m *Group) GetResourceProvisioningOptions() []string { - if m != nil { - return m.ResourceProvisioningOptions - } - return nil -} - -func (m *Group) GetSecurityEnabled() bool { - if m != nil { - return m.SecurityEnabled - } - return false -} - -func (m *Group) GetSecurityIdentifier() string { - if m != nil { - return m.SecurityIdentifier - } - return "" -} - -func (m *Group) GetTheme() string { - if m != nil { - return m.Theme - } - return "" -} - -func (m *Group) GetVisibility() string { - if m != nil { - return m.Visibility - } - return "" -} - -func (m *Group) GetMembers() []*Account { - if m != nil { - return m.Members - } - return nil -} - -type AssignedLabel struct { - // The unique identifier of the label. - LabelId string `protobuf:"bytes,1,opt,name=label_id,json=labelId,proto3" json:"label_id,omitempty"` - // The display name of the label. Read-only. - DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AssignedLabel) Reset() { *m = AssignedLabel{} } -func (m *AssignedLabel) String() string { return proto.CompactTextString(m) } -func (*AssignedLabel) ProtoMessage() {} -func (*AssignedLabel) Descriptor() ([]byte, []int) { - return fileDescriptor_e1e7723af4c007b7, []int{19} -} - -func (m *AssignedLabel) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AssignedLabel.Unmarshal(m, b) -} -func (m *AssignedLabel) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AssignedLabel.Marshal(b, m, deterministic) -} -func (m *AssignedLabel) XXX_Merge(src proto.Message) { - xxx_messageInfo_AssignedLabel.Merge(m, src) -} -func (m *AssignedLabel) XXX_Size() int { - return xxx_messageInfo_AssignedLabel.Size(m) -} -func (m *AssignedLabel) XXX_DiscardUnknown() { - xxx_messageInfo_AssignedLabel.DiscardUnknown(m) -} - -var xxx_messageInfo_AssignedLabel proto.InternalMessageInfo - -func (m *AssignedLabel) GetLabelId() string { - if m != nil { - return m.LabelId - } - return "" -} - -func (m *AssignedLabel) GetDisplayName() string { - if m != nil { - return m.DisplayName - } - return "" -} - -type AssignedLicense struct { - SkuId string `protobuf:"bytes,1,opt,name=sku_id,json=skuId,proto3" json:"sku_id,omitempty"` - DisabledPlans []string `protobuf:"bytes,2,rep,name=disabled_plans,json=disabledPlans,proto3" json:"disabled_plans,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AssignedLicense) Reset() { *m = AssignedLicense{} } -func (m *AssignedLicense) String() string { return proto.CompactTextString(m) } -func (*AssignedLicense) ProtoMessage() {} -func (*AssignedLicense) Descriptor() ([]byte, []int) { - return fileDescriptor_e1e7723af4c007b7, []int{20} -} - -func (m *AssignedLicense) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AssignedLicense.Unmarshal(m, b) -} -func (m *AssignedLicense) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AssignedLicense.Marshal(b, m, deterministic) -} -func (m *AssignedLicense) XXX_Merge(src proto.Message) { - xxx_messageInfo_AssignedLicense.Merge(m, src) -} -func (m *AssignedLicense) XXX_Size() int { - return xxx_messageInfo_AssignedLicense.Size(m) -} -func (m *AssignedLicense) XXX_DiscardUnknown() { - xxx_messageInfo_AssignedLicense.DiscardUnknown(m) -} - -var xxx_messageInfo_AssignedLicense proto.InternalMessageInfo - -func (m *AssignedLicense) GetSkuId() string { - if m != nil { - return m.SkuId - } - return "" -} - -func (m *AssignedLicense) GetDisabledPlans() []string { - if m != nil { - return m.DisabledPlans - } - return nil -} - -type AssignedPlan struct { - // The date and time at which the plan was assigned; for example: 2013-01-02T19:32:30Z. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z' - AssignedDateTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=assigned_date_time,json=assignedDateTime,proto3" json:"assigned_date_time,omitempty"` - // For example, “Enabled”. - CapabilityStatus string `protobuf:"bytes,2,opt,name=capabilityStatus,proto3" json:"capabilityStatus,omitempty"` - // The name of the service; for example, “Exchange”. - Service string `protobuf:"bytes,3,opt,name=service,proto3" json:"service,omitempty"` - // A GUID that identifies the service plan. - ServicePlanId string `protobuf:"bytes,4,opt,name=servicePlanId,proto3" json:"servicePlanId,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AssignedPlan) Reset() { *m = AssignedPlan{} } -func (m *AssignedPlan) String() string { return proto.CompactTextString(m) } -func (*AssignedPlan) ProtoMessage() {} -func (*AssignedPlan) Descriptor() ([]byte, []int) { - return fileDescriptor_e1e7723af4c007b7, []int{21} -} - -func (m *AssignedPlan) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AssignedPlan.Unmarshal(m, b) -} -func (m *AssignedPlan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AssignedPlan.Marshal(b, m, deterministic) -} -func (m *AssignedPlan) XXX_Merge(src proto.Message) { - xxx_messageInfo_AssignedPlan.Merge(m, src) -} -func (m *AssignedPlan) XXX_Size() int { - return xxx_messageInfo_AssignedPlan.Size(m) -} -func (m *AssignedPlan) XXX_DiscardUnknown() { - xxx_messageInfo_AssignedPlan.DiscardUnknown(m) -} - -var xxx_messageInfo_AssignedPlan proto.InternalMessageInfo - -func (m *AssignedPlan) GetAssignedDateTime() *timestamp.Timestamp { - if m != nil { - return m.AssignedDateTime - } - return nil -} - -func (m *AssignedPlan) GetCapabilityStatus() string { - if m != nil { - return m.CapabilityStatus - } - return "" -} - -func (m *AssignedPlan) GetService() string { - if m != nil { - return m.Service - } - return "" -} - -func (m *AssignedPlan) GetServicePlanId() string { - if m != nil { - return m.ServicePlanId - } - return "" -} - type OnPremisesProvisioningError struct { // Category of the provisioning error. Note: Currently, there is only one possible value. Possible value: PropertyConflict - indicates a property value is not unique. Other objects contain the same value for the property. Category string `protobuf:"bytes,1,opt,name=category,proto3" json:"category,omitempty"` @@ -2224,7 +1608,7 @@ func (m *OnPremisesProvisioningError) Reset() { *m = OnPremisesProvision func (m *OnPremisesProvisioningError) String() string { return proto.CompactTextString(m) } func (*OnPremisesProvisioningError) ProtoMessage() {} func (*OnPremisesProvisioningError) Descriptor() ([]byte, []int) { - return fileDescriptor_e1e7723af4c007b7, []int{22} + return fileDescriptor_e1e7723af4c007b7, []int{20} } func (m *OnPremisesProvisioningError) XXX_Unmarshal(b []byte) error { @@ -2282,6 +1666,7 @@ func init() { proto.RegisterType((*DeleteAccountRequest)(nil), "settings.DeleteAccountRequest") proto.RegisterType((*Account)(nil), "settings.Account") proto.RegisterType((*Identities)(nil), "settings.Identities") + proto.RegisterType((*PasswordProfile)(nil), "settings.PasswordProfile") proto.RegisterType((*ListGroupsRequest)(nil), "settings.ListGroupsRequest") proto.RegisterType((*ListGroupsResponse)(nil), "settings.ListGroupsResponse") proto.RegisterType((*GetGroupRequest)(nil), "settings.GetGroupRequest") @@ -2293,206 +1678,134 @@ func init() { proto.RegisterType((*ListMembersRequest)(nil), "settings.ListMembersRequest") proto.RegisterType((*ListMembersResponse)(nil), "settings.ListMembersResponse") proto.RegisterType((*Group)(nil), "settings.Group") - proto.RegisterType((*AssignedLabel)(nil), "settings.AssignedLabel") - proto.RegisterType((*AssignedLicense)(nil), "settings.AssignedLicense") - proto.RegisterType((*AssignedPlan)(nil), "settings.AssignedPlan") proto.RegisterType((*OnPremisesProvisioningError)(nil), "settings.OnPremisesProvisioningError") } func init() { proto.RegisterFile("accounts.proto", fileDescriptor_e1e7723af4c007b7) } var fileDescriptor_e1e7723af4c007b7 = []byte{ - // 3066 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x5a, 0x4b, 0x6f, 0x1c, 0x47, - 0x92, 0x46, 0x53, 0x22, 0xd9, 0x1d, 0xcd, 0x67, 0xb2, 0x45, 0x16, 0x9b, 0x0f, 0xd1, 0xad, 0xb7, - 0x64, 0x93, 0xb2, 0x2c, 0xcb, 0xb6, 0xb4, 0x36, 0x2c, 0x52, 0x8f, 0x25, 0x56, 0x0f, 0xa2, 0x29, - 0xaf, 0x81, 0xdd, 0x85, 0x0b, 0xd9, 0x55, 0xd9, 0xdd, 0x29, 0x56, 0x55, 0x96, 0x2b, 0xab, 0x28, - 0xb5, 0x17, 0x06, 0x16, 0xfb, 0x07, 0xf6, 0xb0, 0xa7, 0xf9, 0x15, 0x83, 0x99, 0xdf, 0x30, 0xf7, - 0x39, 0xcc, 0x1f, 0x98, 0xc3, 0xdc, 0xe7, 0x2f, 0x0c, 0x32, 0x32, 0xb3, 0xba, 0xfa, 0x41, 0xb6, - 0x05, 0x0f, 0x06, 0x98, 0x13, 0x3b, 0x23, 0x22, 0x23, 0x32, 0x32, 0x22, 0xa3, 0xe2, 0xcb, 0x24, - 0x2c, 0x50, 0xcf, 0x13, 0x59, 0x94, 0xca, 0xdd, 0x38, 0x11, 0xa9, 0x20, 0x65, 0xc9, 0xd2, 0x94, - 0x47, 0x1d, 0x59, 0xbf, 0xdc, 0x11, 0xa2, 0x13, 0xb0, 0x3d, 0x1a, 0xf3, 0xbd, 0x36, 0x67, 0x81, - 0xef, 0xb6, 0x58, 0x97, 0x9e, 0x72, 0x91, 0x68, 0xd1, 0xfa, 0x66, 0x41, 0x80, 0x46, 0x91, 0x48, - 0x69, 0xca, 0x45, 0x64, 0x14, 0xd5, 0x37, 0x0c, 0x17, 0x47, 0xad, 0xac, 0xbd, 0xc7, 0xc2, 0x38, - 0xed, 0x19, 0xe6, 0xce, 0x30, 0x53, 0x1b, 0x08, 0xa9, 0x3c, 0x31, 0x12, 0x97, 0x87, 0x25, 0x52, - 0x1e, 0x32, 0x99, 0xd2, 0x30, 0xd6, 0x02, 0x8d, 0xdf, 0x95, 0x60, 0xe5, 0x05, 0x97, 0xe9, 0x63, - 0xb3, 0xfe, 0x26, 0xfb, 0x31, 0x63, 0x32, 0x25, 0x3b, 0x50, 0x89, 0x69, 0x87, 0xb9, 0x92, 0xff, - 0xc4, 0x9c, 0xd2, 0x4e, 0xe9, 0xe6, 0xf4, 0xfe, 0x85, 0x3f, 0x3f, 0x2e, 0x35, 0xcb, 0x8a, 0x7a, - 0xcc, 0x7f, 0x62, 0xa4, 0x01, 0x80, 0x12, 0xa9, 0x38, 0x61, 0x91, 0x33, 0xb5, 0x53, 0xba, 0x59, - 0xd1, 0x22, 0x38, 0xf1, 0x8d, 0xa2, 0x92, 0xaf, 0x00, 0xfa, 0x4b, 0x72, 0x2e, 0xec, 0x94, 0x6e, - 0x56, 0xef, 0xd5, 0x77, 0xf5, 0x9a, 0x76, 0xed, 0x9a, 0x76, 0x9f, 0x29, 0x91, 0x97, 0x54, 0x9e, - 0x34, 0x2b, 0x6d, 0xfb, 0x93, 0xac, 0xc3, 0xf4, 0x8f, 0x19, 0x4b, 0x7a, 0xce, 0xc5, 0xbe, 0x66, - 0x4d, 0x69, 0x84, 0x50, 0x1b, 0x5c, 0xb2, 0x8c, 0x45, 0x24, 0x19, 0xf9, 0x04, 0xca, 0x36, 0x0c, - 0x4e, 0x69, 0xe7, 0xc2, 0xcd, 0xea, 0xbd, 0xe5, 0x5d, 0x1b, 0x87, 0x5d, 0x23, 0xdd, 0xcc, 0x45, - 0xc8, 0x75, 0x58, 0x8c, 0xd8, 0xfb, 0xd4, 0x1d, 0xf6, 0xa2, 0x39, 0xaf, 0xc8, 0x47, 0xd6, 0x89, - 0xc6, 0x15, 0x58, 0x7e, 0xce, 0xac, 0x35, 0xbb, 0x3f, 0x0b, 0x30, 0xc5, 0x7d, 0xdc, 0x98, 0x4a, - 0x73, 0x8a, 0xfb, 0x8d, 0x63, 0xa8, 0x1d, 0x24, 0x8c, 0xa6, 0xec, 0x7c, 0x39, 0x72, 0x07, 0x66, - 0xcd, 0x02, 0xd0, 0xd8, 0xd8, 0x25, 0x5a, 0x89, 0xc6, 0xff, 0x94, 0xa0, 0xf6, 0x5d, 0xec, 0x8f, - 0x6a, 0x2d, 0x68, 0x29, 0x4d, 0xd2, 0x42, 0x1e, 0x41, 0x35, 0x43, 0x25, 0x3a, 0x0a, 0x53, 0x13, - 0xa3, 0x00, 0x5a, 0x5c, 0xfd, 0x6e, 0x5c, 0x87, 0xda, 0x13, 0x16, 0xb0, 0x49, 0x7e, 0x35, 0xfe, - 0xea, 0xc0, 0xac, 0x11, 0x21, 0xeb, 0x50, 0xa6, 0x2d, 0x91, 0xa5, 0x6e, 0xc8, 0x8c, 0xc4, 0x2c, - 0x8e, 0x5f, 0x32, 0x72, 0x03, 0x16, 0xcd, 0xb2, 0x5c, 0x16, 0xd1, 0x56, 0xc0, 0x7c, 0x5c, 0x4f, - 0xb9, 0x69, 0x0f, 0xd0, 0x53, 0x4d, 0x25, 0x1b, 0x50, 0x51, 0x61, 0xe9, 0x24, 0x22, 0x8b, 0x31, - 0x71, 0x2a, 0xcd, 0x32, 0xed, 0xb0, 0xe7, 0x6a, 0x4c, 0x9e, 0xc1, 0x32, 0x95, 0x92, 0x77, 0x22, - 0xe6, 0xbb, 0x01, 0xf7, 0x58, 0x24, 0x99, 0x74, 0x2e, 0x62, 0xc4, 0xd7, 0x0b, 0x1b, 0x61, 0x44, - 0x5e, 0x68, 0x89, 0xe6, 0x12, 0x1d, 0x24, 0x48, 0xf2, 0x35, 0x2c, 0xe4, 0x7a, 0xe2, 0x80, 0x46, - 0xd2, 0x99, 0x46, 0x25, 0xab, 0xa3, 0x4a, 0x8e, 0x02, 0x1a, 0x35, 0xe7, 0x69, 0x61, 0x24, 0xc9, - 0x03, 0x28, 0xb7, 0x78, 0x92, 0x76, 0x7d, 0xda, 0x73, 0x66, 0xce, 0xd8, 0xd5, 0x37, 0xf6, 0xbc, - 0x35, 0x73, 0x59, 0xb5, 0x09, 0xad, 0x4c, 0xf2, 0x88, 0x49, 0xe9, 0xc6, 0x5d, 0x11, 0x31, 0xe9, - 0xcc, 0xee, 0x5c, 0xb8, 0x59, 0x69, 0x2e, 0x58, 0xf2, 0x11, 0x52, 0x09, 0x81, 0x8b, 0x1e, 0x4f, - 0x7b, 0x4e, 0x19, 0xfd, 0xc7, 0xdf, 0xe4, 0x23, 0x98, 0xf3, 0x44, 0x18, 0xd3, 0xa8, 0xe7, 0x46, - 0x34, 0x64, 0x4e, 0x05, 0x79, 0x55, 0x43, 0x7b, 0x45, 0x43, 0x46, 0x1e, 0x41, 0xdd, 0x53, 0x07, - 0x22, 0x4a, 0xdd, 0x38, 0x11, 0xa7, 0xdc, 0x67, 0xbe, 0xdb, 0x16, 0x89, 0x1b, 0xf2, 0x48, 0x24, - 0x0e, 0xe0, 0x84, 0x35, 0x23, 0x71, 0x64, 0x04, 0x9e, 0x89, 0xe4, 0xa5, 0x62, 0x13, 0x07, 0x66, - 0x31, 0x10, 0x49, 0xcf, 0xa9, 0xea, 0xd8, 0x99, 0xa1, 0xda, 0x75, 0x0f, 0x53, 0xdc, 0x77, 0x31, - 0x9b, 0x54, 0x29, 0x71, 0xe6, 0x26, 0xfa, 0xbd, 0x68, 0x26, 0x3d, 0xa1, 0x29, 0x53, 0x54, 0x72, - 0x05, 0xe6, 0x91, 0xc4, 0x45, 0xe4, 0xa6, 0xbd, 0x98, 0x39, 0xf3, 0x68, 0x67, 0xce, 0x12, 0xdf, - 0xf4, 0x62, 0xa6, 0x8c, 0xf9, 0x98, 0x77, 0x45, 0x63, 0x0b, 0x93, 0x8d, 0x99, 0x49, 0xb9, 0xb1, - 0x6d, 0x00, 0x9f, 0xc5, 0x34, 0x49, 0x43, 0x16, 0xa5, 0xce, 0x22, 0x5a, 0x2a, 0x50, 0xd4, 0x76, - 0xfa, 0x5c, 0xc6, 0x01, 0x35, 0xdb, 0xb9, 0xa4, 0xb7, 0xd3, 0xd0, 0x70, 0x3b, 0x2f, 0x43, 0x95, - 0x85, 0x71, 0x20, 0x7a, 0x8c, 0xb9, 0xdc, 0x77, 0x96, 0xb5, 0x0e, 0x4b, 0x3a, 0xf4, 0xc9, 0x2e, - 0xac, 0xb0, 0xf7, 0x29, 0x4b, 0x22, 0x1a, 0xb8, 0x99, 0x64, 0x89, 0x2b, 0x53, 0x9a, 0x32, 0x87, - 0xa0, 0xe0, 0xb2, 0x65, 0x7d, 0x27, 0x59, 0x72, 0xac, 0x18, 0x84, 0xc3, 0xd5, 0x31, 0xf2, 0xae, - 0xd7, 0xa5, 0x51, 0x87, 0x15, 0xdc, 0x5d, 0x99, 0xe8, 0xee, 0xe5, 0x11, 0xe5, 0x07, 0xa8, 0x24, - 0x77, 0x7f, 0x0b, 0xa0, 0x4d, 0xdf, 0xbb, 0x51, 0x16, 0xb6, 0x58, 0xe2, 0xd4, 0x70, 0x45, 0x95, - 0x36, 0x7d, 0xff, 0x0a, 0x09, 0x8a, 0xdd, 0xe1, 0xa7, 0x2c, 0xd2, 0xbe, 0x5f, 0xd2, 0x6c, 0xa4, - 0xa0, 0xe7, 0x5f, 0x40, 0xa5, 0xcb, 0x13, 0xbd, 0x24, 0x67, 0x75, 0x72, 0x86, 0x2b, 0x61, 0x65, - 0xda, 0x54, 0x87, 0xb5, 0xbc, 0xea, 0xdd, 0x07, 0xe0, 0x3e, 0x8b, 0x52, 0x9e, 0x72, 0x26, 0x1d, - 0x07, 0x0f, 0x59, 0xad, 0x7f, 0xc8, 0x0e, 0x73, 0x5e, 0xb3, 0x20, 0xa7, 0x62, 0xc3, 0x43, 0x97, - 0xfa, 0x7e, 0xc2, 0xa4, 0x3a, 0xe1, 0xeb, 0x78, 0x48, 0xaa, 0x3c, 0x7c, 0x6c, 0x49, 0x64, 0x13, - 0x2a, 0x3c, 0x4a, 0x59, 0xc2, 0x64, 0x2a, 0x9d, 0x3a, 0xf2, 0xfb, 0x04, 0x15, 0x18, 0x2e, 0xdd, - 0x84, 0x49, 0x91, 0x25, 0x1e, 0x73, 0x6d, 0xc9, 0xdc, 0xc0, 0x8a, 0xb3, 0xcc, 0xd5, 0x97, 0x03, - 0x39, 0xb6, 0x70, 0x6d, 0x40, 0xe5, 0xad, 0x68, 0xb9, 0x29, 0x4f, 0x03, 0xe6, 0x6c, 0xea, 0xa2, - 0xf3, 0x56, 0xb4, 0xde, 0xa8, 0x31, 0xf9, 0x01, 0xb6, 0x03, 0x2a, 0xd5, 0xe7, 0x42, 0xca, 0x77, - 0x22, 0xf1, 0x47, 0xe3, 0xb5, 0x35, 0x71, 0x87, 0xea, 0x4a, 0xc3, 0x91, 0x51, 0x30, 0x14, 0xaa, - 0x03, 0xd8, 0x0e, 0x58, 0x87, 0x06, 0x6e, 0x5e, 0xf7, 0x5c, 0x2f, 0x50, 0x05, 0xa7, 0xcd, 0x3d, - 0x3c, 0x17, 0xce, 0x36, 0xae, 0x68, 0x03, 0xa5, 0x1e, 0x9b, 0x5a, 0x78, 0x30, 0x20, 0xa2, 0x2a, - 0x46, 0x48, 0x79, 0xe0, 0xec, 0xe8, 0x8a, 0xa1, 0x7e, 0xab, 0xf3, 0xa6, 0xfe, 0xba, 0x11, 0xf7, - 0x4e, 0x30, 0xce, 0x0d, 0x7d, 0xde, 0x14, 0xf1, 0x95, 0xa1, 0xa9, 0xbd, 0x0e, 0x45, 0x8b, 0x07, - 0x4c, 0x57, 0x24, 0xe7, 0x8a, 0x3e, 0x07, 0x9a, 0x86, 0xe5, 0x88, 0xac, 0xc1, 0x6c, 0xd8, 0x73, - 0x25, 0x4f, 0x99, 0x73, 0x15, 0xb9, 0x33, 0x61, 0xef, 0x98, 0xa7, 0x58, 0xd4, 0x45, 0xbb, 0xcd, - 0x3d, 0xe6, 0x06, 0xc2, 0x2c, 0xf5, 0x1a, 0x0a, 0x2c, 0x68, 0xf2, 0x0b, 0x43, 0x55, 0x2e, 0x8a, - 0xc8, 0x8d, 0x13, 0x16, 0x72, 0xc9, 0xa4, 0xeb, 0x73, 0xa9, 0xe2, 0x9f, 0x71, 0xd9, 0x65, 0xbe, - 0x4e, 0xc1, 0xeb, 0xda, 0x45, 0x11, 0x1d, 0x19, 0xa1, 0x27, 0x45, 0x19, 0x4c, 0xca, 0xcf, 0x61, - 0x6d, 0x40, 0x89, 0x08, 0x29, 0x37, 0x09, 0x7c, 0x03, 0x67, 0xd7, 0x0a, 0xb3, 0x91, 0x69, 0x72, - 0xd9, 0x29, 0x4e, 0xe3, 0x61, 0x98, 0xa5, 0xea, 0x53, 0xa3, 0x8e, 0xf4, 0x2d, 0x9c, 0x77, 0xa9, - 0x3f, 0xef, 0xd0, 0x72, 0x0f, 0x7d, 0xe2, 0xc2, 0xe5, 0xe2, 0x44, 0xcc, 0x01, 0xd9, 0x8b, 0xbc, - 0x42, 0xe0, 0x6f, 0x4f, 0x0e, 0x7c, 0x5f, 0xf7, 0x0b, 0x2a, 0xd3, 0xe3, 0x5e, 0xe4, 0xe5, 0x81, - 0x0f, 0x06, 0x0d, 0x60, 0xc9, 0x96, 0x5c, 0x44, 0x3c, 0xea, 0xb8, 0x2c, 0x49, 0x44, 0x22, 0x9d, - 0x3b, 0x78, 0x62, 0xae, 0xf5, 0x4f, 0xcc, 0xeb, 0x5c, 0xdd, 0x51, 0x41, 0xfc, 0xa9, 0x92, 0x6e, - 0x6e, 0x8a, 0xb3, 0x99, 0x92, 0x7c, 0x03, 0x9b, 0x45, 0x6b, 0x92, 0x86, 0xf6, 0x5c, 0xe8, 0x3d, - 0xfc, 0x18, 0xf7, 0xc2, 0xe9, 0xeb, 0x38, 0xa6, 0xa1, 0x39, 0x1f, 0xb8, 0x8f, 0x4f, 0x07, 0x57, - 0x2b, 0x99, 0x97, 0x25, 0x3c, 0xed, 0xb9, 0xfa, 0xdc, 0xb6, 0x39, 0x4b, 0x9c, 0x4f, 0x50, 0x45, - 0x61, 0x19, 0xc7, 0x46, 0xe8, 0x30, 0x97, 0x19, 0x0e, 0x07, 0x6e, 0xa8, 0xed, 0x08, 0x76, 0xf1, - 0x7c, 0x16, 0xc2, 0xa1, 0xb6, 0xcb, 0x36, 0x06, 0x4f, 0x06, 0xed, 0x63, 0xfd, 0x8c, 0x13, 0x1e, - 0x79, 0x3c, 0xa6, 0x81, 0x76, 0x61, 0x6f, 0x38, 0x89, 0x54, 0x75, 0x3c, 0xb2, 0x32, 0xb6, 0xa6, - 0x8b, 0xb4, 0xcb, 0x12, 0x57, 0x1d, 0x02, 0xe9, 0xdc, 0xc5, 0xca, 0x01, 0x48, 0x7a, 0xa9, 0x28, - 0xe4, 0x0e, 0x2c, 0xe7, 0x07, 0x3d, 0x16, 0x01, 0xf7, 0x54, 0xe1, 0xfa, 0x14, 0x15, 0x2f, 0x59, - 0xc6, 0x91, 0xa1, 0xab, 0x13, 0x16, 0x63, 0x69, 0x48, 0xc4, 0x5b, 0xe6, 0xa5, 0xd2, 0xf9, 0x0c, - 0xf5, 0xcd, 0x29, 0xe2, 0x91, 0xa1, 0x29, 0x93, 0xb1, 0x90, 0x29, 0x0d, 0x5c, 0x4f, 0xf8, 0xcc, - 0xb9, 0xaf, 0x3f, 0x23, 0x9a, 0x74, 0x20, 0x7c, 0x46, 0x1e, 0xc0, 0x5a, 0x9c, 0xb0, 0x36, 0x4b, - 0x12, 0xfd, 0xd1, 0xa3, 0xfd, 0xe3, 0xf4, 0xb9, 0x4e, 0xd0, 0x9c, 0xfd, 0x84, 0xa6, 0x34, 0x3f, - 0x55, 0x9f, 0x00, 0xe9, 0xcf, 0x0b, 0x68, 0xd4, 0xc9, 0x68, 0x87, 0x39, 0x0f, 0xf4, 0xd7, 0x27, - 0xe7, 0xbc, 0x30, 0x0c, 0x72, 0x0d, 0x16, 0xfa, 0xe2, 0xb8, 0x5f, 0x5f, 0xe8, 0xae, 0x37, 0xa7, - 0xe2, 0x0e, 0xdd, 0x80, 0xc5, 0x38, 0x11, 0xef, 0x7b, 0x85, 0xfa, 0xfb, 0x95, 0x6e, 0x52, 0x90, - 0xdc, 0x2f, 0xc1, 0x1d, 0xb8, 0x92, 0xb0, 0x76, 0xc2, 0x64, 0x57, 0x37, 0xd1, 0xd2, 0x3d, 0xa5, - 0x01, 0xf7, 0xdd, 0x76, 0x22, 0xc2, 0xc2, 0x19, 0x79, 0x38, 0xf1, 0x8c, 0x6c, 0x1b, 0x35, 0xd8, - 0x75, 0xcb, 0x7f, 0x57, 0x4a, 0x9e, 0x25, 0x22, 0xcc, 0xcf, 0xc9, 0x6d, 0x58, 0x4a, 0x74, 0xab, - 0xcf, 0x5b, 0x3c, 0xd0, 0x9f, 0x92, 0x47, 0xb8, 0xa4, 0x11, 0xba, 0xea, 0x62, 0xa4, 0xd7, 0x15, - 0x22, 0x90, 0xce, 0xbf, 0xa0, 0x88, 0x1d, 0x92, 0x3d, 0xa8, 0xc9, 0xae, 0x78, 0xe7, 0xf2, 0xc8, - 0x7a, 0xe6, 0x06, 0x5c, 0xa6, 0xce, 0xd7, 0xfa, 0xa3, 0xa0, 0x78, 0x87, 0x91, 0xf1, 0x4e, 0xa1, - 0x0c, 0xf2, 0x16, 0xae, 0xa9, 0xa6, 0x4f, 0x4d, 0x90, 0x4c, 0xaa, 0xc3, 0x74, 0x86, 0x87, 0xdf, - 0x4c, 0xfe, 0x5c, 0x2b, 0x45, 0x87, 0xd1, 0xb1, 0x51, 0x33, 0xea, 0xe2, 0x2a, 0xcc, 0xc8, 0x13, - 0x1e, 0x04, 0xd2, 0xf9, 0x16, 0x57, 0x6d, 0x46, 0xa4, 0x06, 0xd3, 0xba, 0xa7, 0x78, 0x8c, 0xa1, - 0xd2, 0x03, 0x15, 0x49, 0x99, 0x26, 0x8c, 0xa5, 0xd6, 0x13, 0x67, 0x5f, 0x47, 0x52, 0x53, 0x8d, - 0x13, 0xb8, 0x17, 0x59, 0x82, 0x91, 0x3e, 0xd0, 0x1d, 0x9d, 0x19, 0x2a, 0x05, 0x99, 0x54, 0x9f, - 0x9b, 0x3c, 0xd1, 0x9e, 0x68, 0x05, 0x48, 0xcd, 0x13, 0x6c, 0x17, 0x56, 0xc6, 0x1d, 0xb3, 0xa7, - 0x3a, 0xc3, 0xb2, 0x91, 0xc3, 0xb5, 0x01, 0x15, 0x94, 0xc7, 0xe6, 0xee, 0x99, 0xfe, 0x8c, 0x2a, - 0x02, 0x36, 0x76, 0x75, 0x28, 0xdb, 0xf3, 0xe3, 0x3c, 0xd7, 0x3c, 0x3b, 0x26, 0x77, 0xa0, 0x1c, - 0x32, 0xd5, 0x98, 0xbc, 0x6e, 0x3b, 0x3e, 0x96, 0xbc, 0xc5, 0x7e, 0xc9, 0xc3, 0xcf, 0x5d, 0x33, - 0x17, 0x68, 0xa4, 0x00, 0xfd, 0xbe, 0x81, 0xec, 0xc0, 0x9c, 0x8d, 0x12, 0x9a, 0xd5, 0xb8, 0x03, - 0xf4, 0x86, 0xa3, 0xe1, 0x55, 0x98, 0xe1, 0x52, 0x66, 0x2c, 0x31, 0x28, 0xcf, 0x8c, 0xc8, 0xc7, - 0x40, 0xf4, 0x2f, 0x37, 0xc7, 0x02, 0xdc, 0x37, 0x90, 0x63, 0x49, 0x73, 0x2c, 0x08, 0x38, 0xf4, - 0x1b, 0xbf, 0x2d, 0xc1, 0xb2, 0x4a, 0x0b, 0x5c, 0xcd, 0x3f, 0x05, 0x5a, 0x66, 0x40, 0x8a, 0x0b, - 0x36, 0x58, 0xf9, 0x06, 0xcc, 0x60, 0x8f, 0x61, 0x91, 0xf2, 0xc8, 0x46, 0x1b, 0xf6, 0x2f, 0x46, - 0xc9, 0x1f, 0xc1, 0xe2, 0x73, 0xa6, 0xad, 0x9c, 0x85, 0x11, 0xff, 0x0d, 0x88, 0xc6, 0xc8, 0xe7, - 0x49, 0x91, 0x6b, 0x30, 0xad, 0x51, 0x9f, 0x06, 0xaa, 0x23, 0x0b, 0xd3, 0xdc, 0xc6, 0x7b, 0x20, - 0x1a, 0x1a, 0x0f, 0x28, 0xcb, 0x27, 0x97, 0xce, 0x9b, 0xfc, 0xeb, 0x20, 0xf1, 0x55, 0x20, 0x1a, - 0x12, 0x9f, 0xeb, 0x6c, 0x03, 0x96, 0x1e, 0xfb, 0xfe, 0x4b, 0xcc, 0xd6, 0xb3, 0x64, 0xae, 0xc1, - 0x4a, 0x93, 0x85, 0xe2, 0x94, 0x9d, 0x2f, 0x96, 0xe9, 0x08, 0x6a, 0xa1, 0xbf, 0x73, 0xce, 0xe5, - 0x89, 0x73, 0x61, 0x24, 0x71, 0xde, 0xea, 0x9b, 0xa1, 0xdc, 0xac, 0xc9, 0x9c, 0x3b, 0x30, 0xab, - 0xcf, 0xe0, 0x39, 0x97, 0x2c, 0x56, 0xe2, 0x17, 0x67, 0xcf, 0x6f, 0x96, 0x61, 0x5a, 0x63, 0xfb, - 0xfb, 0xb0, 0x4a, 0x83, 0x40, 0xbc, 0x73, 0x73, 0x88, 0x24, 0x59, 0xe4, 0x6b, 0x6b, 0xaa, 0x42, - 0xd7, 0x90, 0xfb, 0xd4, 0x30, 0x8f, 0x35, 0x8f, 0x7c, 0x0b, 0x8b, 0xfd, 0x1b, 0x01, 0xda, 0x62, - 0x81, 0x74, 0xa6, 0x70, 0x71, 0x6b, 0x63, 0xee, 0x03, 0x14, 0xbf, 0x99, 0x23, 0x7f, 0x1c, 0xca, - 0xf1, 0x77, 0x0a, 0x17, 0x3e, 0xfc, 0x4e, 0xe1, 0x11, 0xd4, 0x69, 0x96, 0x0a, 0x57, 0x66, 0x2d, - 0xe9, 0x25, 0xbc, 0xc5, 0xdc, 0x88, 0xbd, 0x73, 0xed, 0x8e, 0x5d, 0x44, 0x1f, 0xd6, 0x94, 0xc4, - 0xb1, 0x15, 0x78, 0xc5, 0xde, 0xbd, 0xcc, 0xb7, 0x6b, 0x61, 0xa8, 0xe7, 0x9f, 0xd6, 0x8d, 0xf4, - 0x20, 0x95, 0xdc, 0xea, 0x43, 0xf1, 0x56, 0xcf, 0xa5, 0x71, 0xac, 0x4a, 0xd6, 0x8c, 0x11, 0xd5, - 0x8c, 0xfd, 0xde, 0xe3, 0x38, 0x3e, 0xf4, 0xc7, 0xa3, 0xf6, 0xd9, 0x0f, 0x47, 0xed, 0x63, 0x01, - 0x79, 0xf9, 0xc3, 0x01, 0xf9, 0x0e, 0x54, 0x7d, 0xa6, 0x1c, 0x8f, 0xd1, 0x3f, 0x73, 0x7d, 0x51, - 0x20, 0x8d, 0x40, 0x72, 0x18, 0x85, 0xe4, 0x2f, 0xa0, 0xc6, 0xde, 0xc7, 0x3c, 0xd1, 0x97, 0x08, - 0xfd, 0xf5, 0x54, 0x27, 0xae, 0x87, 0xf4, 0xe7, 0xe5, 0x4b, 0xba, 0x0c, 0x55, 0x8d, 0xb7, 0xd4, - 0x97, 0x43, 0x3a, 0x73, 0xba, 0x19, 0x44, 0x92, 0xfa, 0x72, 0x48, 0xd5, 0x73, 0x76, 0xa9, 0xb4, - 0x41, 0x74, 0xdf, 0xf1, 0xb4, 0x6b, 0x73, 0xc4, 0x76, 0xe8, 0xf3, 0x18, 0xd8, 0x8d, 0x2e, 0x95, - 0x26, 0x96, 0xdf, 0xf3, 0xb4, 0x6b, 0x92, 0xc2, 0x74, 0xde, 0x9f, 0xc3, 0x5a, 0x97, 0xfb, 0x4c, - 0xb7, 0x0d, 0xc5, 0xde, 0x43, 0xe2, 0xc5, 0x46, 0xb9, 0x59, 0x53, 0x6c, 0xd5, 0x0f, 0x14, 0xda, - 0x0f, 0x49, 0xbe, 0x82, 0xf5, 0xfe, 0x34, 0x91, 0xa5, 0x81, 0x10, 0x27, 0xae, 0x17, 0x70, 0x16, - 0xa5, 0x12, 0x2f, 0x34, 0xca, 0xcd, 0x55, 0x3b, 0xf1, 0xb5, 0x66, 0x1f, 0x68, 0xae, 0x29, 0x24, - 0x4b, 0x79, 0x69, 0xfd, 0x14, 0x2e, 0x71, 0xd9, 0xcf, 0x4c, 0x4c, 0x1e, 0x84, 0x8b, 0xcb, 0xa8, - 0x86, 0x70, 0x99, 0x27, 0xa5, 0xbf, 0xdf, 0x53, 0x8d, 0x30, 0xf9, 0x12, 0x1c, 0xeb, 0x69, 0x9c, - 0x08, 0x4f, 0x75, 0x2e, 0x51, 0x67, 0xe0, 0x82, 0x63, 0xd5, 0xf0, 0x8f, 0x72, 0xb6, 0xbe, 0xe5, - 0xb0, 0x50, 0x74, 0xa5, 0x00, 0x45, 0x15, 0xca, 0x54, 0x50, 0xd4, 0x76, 0xfa, 0x35, 0xb4, 0x5b, - 0x55, 0x34, 0xdb, 0xdf, 0x8f, 0xa0, 0xd5, 0x4b, 0x63, 0xd0, 0xea, 0x0d, 0x58, 0x34, 0xc1, 0xe8, - 0xf2, 0xd8, 0x4d, 0xb2, 0x40, 0x5f, 0x4f, 0x54, 0x9a, 0x0b, 0x7d, 0x72, 0x33, 0x0b, 0x18, 0x79, - 0x0e, 0x3b, 0x43, 0x82, 0xa3, 0x6e, 0xe8, 0x6b, 0x8a, 0xad, 0xc1, 0x99, 0xc3, 0xde, 0x9c, 0x83, - 0x3a, 0x9d, 0x73, 0x50, 0xe7, 0xc1, 0x64, 0xf0, 0xb8, 0x8e, 0xd3, 0xcf, 0x03, 0x88, 0x5f, 0xc2, - 0x7a, 0x51, 0x49, 0xc4, 0x52, 0xb7, 0xc5, 0x85, 0xd4, 0xd6, 0xeb, 0xc3, 0xd8, 0xf5, 0x15, 0x4b, - 0xf7, 0xb9, 0x90, 0x68, 0xfe, 0x17, 0x40, 0xcb, 0x8d, 0x7f, 0x1c, 0xb4, 0xdc, 0xfc, 0xf5, 0xd0, - 0x72, 0xeb, 0x57, 0x42, 0xcb, 0xed, 0xf3, 0xa0, 0xe5, 0x39, 0x00, 0xec, 0xf2, 0x87, 0x03, 0xb0, - 0x9d, 0xb3, 0x00, 0xd8, 0x18, 0x64, 0xf5, 0xd1, 0x58, 0x64, 0xf5, 0x0c, 0x96, 0x13, 0x16, 0xb1, - 0x77, 0x03, 0x25, 0xb7, 0x31, 0xb9, 0xe4, 0x9a, 0x49, 0x79, 0xfe, 0x3c, 0x84, 0xf5, 0xfc, 0x0e, - 0xcc, 0x3e, 0x3e, 0xb9, 0x02, 0x8b, 0xad, 0x74, 0xae, 0xa0, 0xe9, 0x35, 0x2b, 0xb0, 0x6f, 0xf8, - 0xaf, 0x35, 0x9b, 0xec, 0xc3, 0x56, 0x3e, 0x77, 0x20, 0x7d, 0xec, 0xfc, 0xab, 0x38, 0x7f, 0xc3, - 0x0a, 0x15, 0xd3, 0xc2, 0xea, 0xb8, 0x05, 0x4b, 0x79, 0x2c, 0x6d, 0x20, 0xae, 0x61, 0x20, 0x16, - 0x2d, 0xdd, 0x86, 0x60, 0x0f, 0x56, 0xc6, 0x85, 0x5d, 0x5f, 0x0b, 0x11, 0x39, 0x1a, 0xec, 0x1a, - 0x4c, 0xa7, 0x5d, 0x96, 0xdf, 0xfd, 0xe8, 0x01, 0xd9, 0x06, 0x50, 0xab, 0x40, 0x38, 0xd8, 0x73, - 0xee, 0x68, 0x2c, 0xd0, 0xa7, 0x14, 0x7b, 0x18, 0x7f, 0x52, 0x0f, 0xd3, 0x78, 0x09, 0xf3, 0x03, - 0xad, 0x03, 0x59, 0x87, 0x32, 0xf6, 0x18, 0x6e, 0xde, 0xa5, 0xcd, 0xe2, 0xf8, 0xd0, 0x1f, 0xf9, - 0x76, 0x4d, 0x8d, 0x7c, 0xbb, 0x1a, 0xaf, 0x61, 0x71, 0xa8, 0x8b, 0x20, 0x97, 0x14, 0xec, 0xcb, - 0xfa, 0xea, 0xa6, 0xe5, 0x49, 0x76, 0xa8, 0x3a, 0xe1, 0x05, 0x9f, 0x4b, 0xdc, 0x18, 0xf3, 0x3c, - 0x31, 0x85, 0x9b, 0x3d, 0x6f, 0xa9, 0xf8, 0x0c, 0xd1, 0xf8, 0x43, 0x09, 0xe6, 0x8a, 0xcf, 0x14, - 0xe4, 0x5f, 0x81, 0xe4, 0xad, 0x4c, 0x3f, 0x71, 0x4a, 0x13, 0x13, 0x27, 0x6f, 0x66, 0x8a, 0x90, - 0xdb, 0xa3, 0x31, 0xd5, 0xbb, 0xa6, 0x0a, 0x61, 0x26, 0x8d, 0x4b, 0x23, 0x74, 0x84, 0x99, 0x2c, - 0x39, 0xe5, 0x1e, 0x33, 0xe0, 0xc9, 0x0e, 0xc9, 0x55, 0x98, 0x37, 0x3f, 0xd5, 0xf2, 0x0e, 0x7d, - 0x0d, 0x52, 0x9a, 0x83, 0xc4, 0xc6, 0x1f, 0x4b, 0xb0, 0x71, 0x4e, 0xed, 0x51, 0xc0, 0xd1, 0xa3, - 0x29, 0xeb, 0x88, 0xa4, 0x67, 0xb6, 0x29, 0x1f, 0x2b, 0x8f, 0x85, 0xe7, 0x65, 0xf6, 0xe0, 0x1a, - 0x8f, 0xa7, 0x26, 0x7b, 0x6c, 0x67, 0xe5, 0x1e, 0xdf, 0x87, 0xd5, 0x38, 0x11, 0x31, 0x4b, 0xd2, - 0x9e, 0xeb, 0xd1, 0x4c, 0xe6, 0x95, 0xd2, 0x38, 0x55, 0xb3, 0xdc, 0x03, 0xcd, 0xd4, 0x6b, 0xab, - 0xc1, 0xf4, 0x29, 0x0d, 0x32, 0x66, 0x3c, 0xd3, 0x83, 0x7b, 0xff, 0x77, 0x11, 0x16, 0xed, 0x23, - 0xe5, 0xb1, 0xd9, 0x0b, 0x0f, 0xe6, 0x8a, 0x6f, 0x97, 0x64, 0xab, 0x9f, 0x78, 0x63, 0x9e, 0x61, - 0xeb, 0xdb, 0x67, 0xb1, 0x75, 0x33, 0xde, 0xa8, 0xfd, 0xef, 0x9f, 0xfe, 0xf2, 0xff, 0x53, 0x0b, - 0x64, 0x6e, 0xef, 0xf4, 0xee, 0x5e, 0xfe, 0xb2, 0xf9, 0x5f, 0x00, 0xfd, 0x17, 0x4b, 0xb2, 0x51, - 0x00, 0x41, 0xc3, 0xef, 0x98, 0xf5, 0xd1, 0xc4, 0x6f, 0x6c, 0xa3, 0x4e, 0x87, 0xac, 0x14, 0x75, - 0xee, 0xfd, 0x37, 0xf7, 0xbf, 0xbe, 0xfd, 0xf3, 0xc3, 0xd2, 0x6d, 0x42, 0x61, 0x7e, 0xe0, 0xa9, - 0x93, 0x14, 0x16, 0x39, 0xee, 0x0d, 0x74, 0x9c, 0x8d, 0x2d, 0xb4, 0xb1, 0xd6, 0x18, 0x58, 0xf7, - 0xc3, 0xfc, 0xc9, 0x32, 0x86, 0xf9, 0x81, 0x77, 0xcf, 0xa2, 0x89, 0x71, 0x0f, 0xa2, 0xe3, 0x4c, - 0x7c, 0x8c, 0x26, 0xae, 0xdf, 0xdb, 0x18, 0x74, 0xc3, 0xfc, 0xda, 0xd5, 0xee, 0xe4, 0x16, 0x7d, - 0x98, 0x1f, 0x78, 0xe7, 0x2c, 0x5a, 0x1c, 0xf7, 0x00, 0x5a, 0x5f, 0x1d, 0x49, 0xab, 0xa7, 0x61, - 0x9c, 0xf6, 0x1a, 0x1b, 0x68, 0xf6, 0xd2, 0xed, 0x71, 0xbb, 0x77, 0xef, 0xf7, 0x33, 0x30, 0xaf, - 0x81, 0xb8, 0xcd, 0x87, 0xff, 0x04, 0xe8, 0xa3, 0xf3, 0x62, 0xa8, 0x46, 0x2e, 0x19, 0xea, 0x9b, - 0xe3, 0x99, 0x26, 0x13, 0x08, 0xda, 0x9d, 0x23, 0xa0, 0xec, 0x1a, 0xec, 0xfe, 0x06, 0xca, 0x16, - 0x93, 0x93, 0xf5, 0x81, 0x2c, 0x28, 0x42, 0xd7, 0xfa, 0x30, 0x4a, 0x6e, 0x6c, 0xa2, 0xae, 0x55, - 0xb2, 0xdc, 0xd7, 0x55, 0x88, 0xff, 0xf7, 0x50, 0x2d, 0xc0, 0x78, 0xb2, 0x39, 0x1c, 0xfd, 0xf3, - 0x75, 0xaf, 0xa3, 0xee, 0x95, 0x46, 0x61, 0x9d, 0x0f, 0x0d, 0x2a, 0xf7, 0xa1, 0x5a, 0x80, 0xf4, - 0x45, 0xc5, 0xa3, 0x48, 0x7f, 0x54, 0xf1, 0x75, 0x54, 0xbc, 0x73, 0x6f, 0xad, 0xb8, 0x68, 0xfc, - 0x6b, 0x62, 0x6d, 0xac, 0xfc, 0x00, 0xd5, 0x02, 0x7c, 0x2f, 0x5a, 0x19, 0x45, 0xf5, 0x67, 0x46, - 0xd9, 0x78, 0x71, 0x7b, 0x74, 0x87, 0x88, 0x07, 0x95, 0x1c, 0xf8, 0x93, 0x7a, 0x21, 0x2f, 0x87, - 0x6e, 0x03, 0x46, 0x3d, 0xb8, 0x85, 0x4a, 0xaf, 0x34, 0xb6, 0x47, 0x94, 0xee, 0x99, 0x6f, 0xd1, - 0xde, 0xd5, 0x84, 0xb5, 0x55, 0x0c, 0x4e, 0x61, 0xae, 0x78, 0x73, 0x50, 0x2c, 0x23, 0x63, 0x6e, - 0x14, 0x46, 0x4d, 0x3d, 0x40, 0x53, 0x77, 0x6f, 0xdf, 0x39, 0xdb, 0x54, 0xe1, 0xa4, 0xfc, 0x9c, - 0xdb, 0x4d, 0xa0, 0x5a, 0xb8, 0x13, 0x20, 0x43, 0x29, 0x39, 0x78, 0x43, 0x51, 0xdf, 0x3a, 0x83, - 0x6b, 0x32, 0xd6, 0x04, 0x8c, 0x4c, 0x70, 0x77, 0xbf, 0xf6, 0x1f, 0x24, 0x3e, 0xe9, 0xe8, 0x7f, - 0x61, 0xd9, 0x3b, 0xbd, 0xfb, 0x48, 0x87, 0x62, 0x06, 0xff, 0x7c, 0xf6, 0xb7, 0x00, 0x00, 0x00, - 0xff, 0xff, 0xc7, 0x2d, 0x03, 0x5c, 0x7a, 0x23, 0x00, 0x00, + // 1955 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0xeb, 0x6e, 0xdc, 0xc6, + 0x15, 0xc6, 0x4a, 0x96, 0xb4, 0x3a, 0x2b, 0x59, 0xd2, 0x68, 0x2d, 0x51, 0xab, 0x8b, 0x37, 0xf4, + 0x25, 0xb2, 0x94, 0x4a, 0x86, 0x9a, 0xf4, 0xe2, 0x34, 0x05, 0x64, 0xc9, 0x76, 0x85, 0xda, 0x8e, + 0xb0, 0x72, 0x1a, 0xf4, 0x82, 0x10, 0x14, 0x39, 0xbb, 0x9a, 0x78, 0x79, 0xc9, 0xcc, 0x70, 0xad, + 0x4d, 0x11, 0xa0, 0xe8, 0x0b, 0xf4, 0x47, 0x1f, 0xa4, 0x97, 0x17, 0xe9, 0x8f, 0xbe, 0x40, 0x7e, + 0xf4, 0x57, 0xdf, 0xa1, 0x40, 0x31, 0x17, 0x92, 0xc3, 0xe5, 0x5e, 0x52, 0x24, 0x40, 0x61, 0x20, + 0xbf, 0xb4, 0x9c, 0x73, 0xe6, 0xfb, 0xce, 0x9c, 0x73, 0x38, 0xf3, 0x71, 0x04, 0x37, 0x5d, 0xcf, + 0x8b, 0x92, 0x90, 0xb3, 0x83, 0x98, 0x46, 0x3c, 0x42, 0x55, 0x86, 0x39, 0x27, 0x61, 0x87, 0x35, + 0x6e, 0x77, 0xa2, 0xa8, 0xd3, 0xc5, 0x87, 0x6e, 0x4c, 0x0e, 0xdb, 0x04, 0x77, 0x7d, 0xe7, 0x12, + 0x5f, 0xb9, 0x3d, 0x12, 0x51, 0xe5, 0xda, 0xd8, 0x32, 0x1c, 0xdc, 0x30, 0x8c, 0xb8, 0xcb, 0x49, + 0x14, 0x6a, 0xa0, 0xc6, 0xa6, 0xb6, 0xca, 0xa7, 0xcb, 0xa4, 0x7d, 0x88, 0x83, 0x98, 0xf7, 0xb5, + 0xb1, 0x39, 0x68, 0x54, 0x04, 0x81, 0xcb, 0x5e, 0x6b, 0x8f, 0xdb, 0x83, 0x1e, 0x9c, 0x04, 0x98, + 0x71, 0x37, 0x88, 0x95, 0x83, 0xfd, 0xb7, 0x0a, 0xac, 0x3e, 0x27, 0x8c, 0x1f, 0xeb, 0xf8, 0x5b, + 0xf8, 0x8b, 0x04, 0x33, 0x8e, 0x9a, 0x30, 0x1f, 0xbb, 0x1d, 0xec, 0x30, 0xf2, 0x25, 0xb6, 0x2a, + 0xcd, 0xca, 0xee, 0xcc, 0xe3, 0xe9, 0xaf, 0x8f, 0x2b, 0xad, 0xaa, 0x18, 0xbd, 0x20, 0x5f, 0x62, + 0x64, 0x03, 0x48, 0x0f, 0x1e, 0xbd, 0xc6, 0xa1, 0x35, 0xd5, 0xac, 0xec, 0xce, 0x2b, 0x17, 0x39, + 0xf1, 0x95, 0x18, 0x45, 0x3f, 0x05, 0xc8, 0x43, 0xb2, 0xa6, 0x9b, 0x95, 0xdd, 0xda, 0x51, 0xe3, + 0x40, 0xc5, 0x74, 0x90, 0xc6, 0x74, 0xf0, 0x54, 0xb8, 0xbc, 0x70, 0xd9, 0xeb, 0xd6, 0x7c, 0x3b, + 0xfd, 0x89, 0x36, 0x60, 0xe6, 0x8b, 0x04, 0xd3, 0xbe, 0x75, 0x23, 0x47, 0x56, 0x23, 0x76, 0x00, + 0xf5, 0x62, 0xc8, 0x2c, 0x8e, 0x42, 0x86, 0xd1, 0x0f, 0xa0, 0x9a, 0x96, 0xc1, 0xaa, 0x34, 0xa7, + 0x77, 0x6b, 0x47, 0x2b, 0x07, 0x69, 0x1d, 0x0e, 0xb4, 0x77, 0x2b, 0x73, 0x41, 0xf7, 0x61, 0x29, + 0xc4, 0xd7, 0xdc, 0x19, 0x5c, 0x45, 0x6b, 0x51, 0x0c, 0x9f, 0xa7, 0x8b, 0xb0, 0xef, 0xc0, 0xca, + 0x33, 0x9c, 0xb2, 0xa5, 0xf9, 0xb9, 0x09, 0x53, 0xc4, 0x97, 0x89, 0x99, 0x6f, 0x4d, 0x11, 0xdf, + 0xbe, 0x80, 0xfa, 0x09, 0xc5, 0x2e, 0xc7, 0xe3, 0xfd, 0xd0, 0x3e, 0xcc, 0xe9, 0x00, 0x24, 0xd9, + 0xd0, 0x10, 0x53, 0x0f, 0xfb, 0x0f, 0x15, 0xa8, 0x7f, 0x12, 0xfb, 0x65, 0x54, 0x03, 0xa5, 0x32, + 0x09, 0x05, 0x7d, 0x08, 0xb5, 0x44, 0x82, 0xa8, 0x2a, 0x4c, 0x4d, 0xac, 0x02, 0x28, 0x77, 0xf1, + 0xdb, 0xbe, 0x0f, 0xf5, 0x53, 0xdc, 0xc5, 0x93, 0xd6, 0x65, 0xff, 0x67, 0x01, 0xe6, 0xb4, 0x4b, + 0x69, 0xcd, 0xef, 0xc2, 0x92, 0x8e, 0xc5, 0xc1, 0xa1, 0x7b, 0xd9, 0xc5, 0xbe, 0x0c, 0xa2, 0xda, + 0x4a, 0xdf, 0x9a, 0x27, 0x6a, 0x14, 0x1d, 0xc0, 0x2a, 0x61, 0x0e, 0xc5, 0x2c, 0x4a, 0xa8, 0x87, + 0x9d, 0x74, 0x89, 0xd3, 0xd2, 0x79, 0x85, 0x88, 0x4a, 0x4b, 0x4b, 0x4a, 0x74, 0x07, 0x16, 0x3d, + 0x91, 0x74, 0x12, 0x85, 0x0e, 0xef, 0xc7, 0x58, 0xf5, 0x4a, 0x6b, 0x21, 0x1d, 0x7c, 0xd5, 0x8f, + 0x31, 0x7a, 0x1f, 0x80, 0xf8, 0x38, 0xe4, 0x84, 0x13, 0xcc, 0xac, 0x19, 0xd9, 0x17, 0xf5, 0x3c, + 0x5d, 0x67, 0x99, 0xad, 0x65, 0xf8, 0xa1, 0x77, 0x60, 0xc1, 0x27, 0x2c, 0xee, 0xba, 0x7d, 0x27, + 0x74, 0x03, 0x6c, 0xcd, 0x4a, 0xe4, 0x9a, 0x1e, 0x7b, 0xe9, 0x06, 0x18, 0x35, 0xa0, 0x9a, 0x30, + 0x4c, 0xa5, 0x79, 0x4e, 0x9a, 0xb3, 0x67, 0xb4, 0x0d, 0x90, 0x10, 0xdf, 0x09, 0x93, 0xe0, 0x12, + 0x53, 0xab, 0xda, 0xac, 0xec, 0x4e, 0xb7, 0xe6, 0x13, 0xe2, 0xbf, 0x94, 0x03, 0xc2, 0xdc, 0xc9, + 0xcd, 0xf3, 0xca, 0xdc, 0xc9, 0xcc, 0x08, 0x6e, 0x04, 0x2e, 0xe9, 0x5a, 0x20, 0x51, 0xe5, 0x6f, + 0xd4, 0x84, 0x9a, 0x8f, 0x99, 0x47, 0x49, 0x2c, 0x56, 0x66, 0xd5, 0x74, 0x3c, 0xf9, 0x10, 0x3a, + 0x85, 0xe5, 0xd8, 0x65, 0xec, 0x4d, 0x44, 0x7d, 0x27, 0xa6, 0x51, 0x9b, 0x74, 0xb1, 0xb5, 0x20, + 0x8b, 0xbd, 0x91, 0x2f, 0xf7, 0x5c, 0x7b, 0x9c, 0x2b, 0x87, 0xd6, 0x52, 0x5c, 0x1c, 0x40, 0xfb, + 0x50, 0x0d, 0xb0, 0x88, 0xe2, 0xe3, 0xb6, 0xb5, 0x28, 0x93, 0xb5, 0x94, 0xcf, 0x7e, 0x46, 0xa3, + 0x24, 0x6e, 0x65, 0x0e, 0xe8, 0x29, 0xac, 0xc8, 0x5c, 0x63, 0xdf, 0x91, 0x0d, 0x26, 0x76, 0x17, + 0x6b, 0x79, 0x44, 0x83, 0xbd, 0x4a, 0xb7, 0x9e, 0xd6, 0x92, 0x9e, 0x74, 0xea, 0x72, 0x2c, 0x46, + 0x05, 0x8e, 0x2f, 0xbb, 0xcc, 0xc4, 0x59, 0x99, 0x8c, 0xa3, 0x27, 0x65, 0x38, 0x3f, 0x06, 0x2b, + 0x0a, 0x9d, 0x98, 0xe2, 0x80, 0x30, 0xcc, 0x1c, 0xd6, 0x0f, 0xbd, 0xac, 0xe5, 0xea, 0xb2, 0x8b, + 0x6e, 0x45, 0xe1, 0xb9, 0x36, 0x5f, 0xf4, 0x43, 0x2f, 0xed, 0xbc, 0x81, 0x89, 0x24, 0x08, 0x12, + 0x2e, 0x2c, 0x0e, 0xf1, 0xad, 0x5b, 0x32, 0xd5, 0xc6, 0xc4, 0xb3, 0xd4, 0x7a, 0xe6, 0xa3, 0x27, + 0x70, 0xbb, 0xc0, 0x88, 0xbd, 0x84, 0x12, 0xde, 0x77, 0x54, 0x2b, 0xb5, 0x09, 0xa6, 0xd6, 0x9a, + 0x9c, 0xbf, 0x65, 0x10, 0x6b, 0xa7, 0xb3, 0xcc, 0x07, 0x9d, 0xc0, 0x8e, 0x09, 0xe3, 0x13, 0x26, + 0x12, 0x9e, 0x10, 0x76, 0x85, 0x7d, 0xd5, 0x80, 0xeb, 0x12, 0x65, 0x33, 0x47, 0x39, 0x35, 0x7d, + 0x64, 0x43, 0xfe, 0x1c, 0xb6, 0x0a, 0xb1, 0xb8, 0x41, 0xfa, 0x0a, 0x29, 0x08, 0x4b, 0x42, 0x58, + 0x46, 0x20, 0x6e, 0xa0, 0x5f, 0x25, 0x39, 0xff, 0x03, 0x58, 0x2f, 0x04, 0x11, 0x05, 0x2e, 0x09, + 0xd5, 0xd4, 0x0d, 0x39, 0xb5, 0x6e, 0xb0, 0x4b, 0xa3, 0x9c, 0x76, 0x5a, 0x4c, 0x81, 0x78, 0x07, + 0x9c, 0x98, 0x92, 0xd0, 0x23, 0xb1, 0xdb, 0x55, 0xd3, 0x1b, 0x83, 0xc1, 0x7f, 0xc2, 0x30, 0x3d, + 0x4f, 0x7d, 0x24, 0x8a, 0x53, 0x44, 0xe9, 0xba, 0x8c, 0xab, 0xfa, 0xe5, 0x0d, 0xb1, 0x35, 0xb1, + 0x21, 0x1a, 0x39, 0xc3, 0x73, 0x97, 0x71, 0x51, 0xe1, 0xac, 0x37, 0xba, 0x45, 0x82, 0x98, 0x46, + 0x3d, 0xc2, 0x48, 0x14, 0x92, 0xb0, 0xe3, 0x60, 0x4a, 0x23, 0xca, 0xac, 0x6d, 0xd9, 0xef, 0xf7, + 0xf2, 0x7e, 0xff, 0x38, 0x83, 0x3b, 0x37, 0xdc, 0x9f, 0x08, 0x6f, 0xb3, 0xa0, 0x25, 0x23, 0x13, + 0x5b, 0x19, 0xbe, 0xe6, 0x62, 0x37, 0xe8, 0xaa, 0x8c, 0x30, 0xee, 0x72, 0x6c, 0xed, 0xca, 0x44, + 0xac, 0xa4, 0x26, 0x91, 0x86, 0x0b, 0x61, 0x40, 0x04, 0xee, 0x0e, 0xf1, 0x77, 0xbc, 0x2b, 0x37, + 0xec, 0x60, 0x23, 0x07, 0x0f, 0x26, 0xe6, 0xe0, 0x76, 0x09, 0xfc, 0x44, 0x82, 0x64, 0x89, 0xe8, + 0xc0, 0x1d, 0x8a, 0xdb, 0x14, 0xb3, 0x2b, 0x75, 0xea, 0x31, 0xa7, 0xe7, 0x76, 0x89, 0xef, 0xb4, + 0x69, 0x14, 0x18, 0x4c, 0x3f, 0x9b, 0xc8, 0xb4, 0xa3, 0x61, 0xe4, 0x31, 0xc9, 0x7e, 0x25, 0x40, + 0x9e, 0xd2, 0x28, 0xc8, 0x88, 0x3e, 0x87, 0x7b, 0x8c, 0x74, 0x42, 0x87, 0x84, 0x0e, 0xc3, 0x4c, + 0xe4, 0x67, 0x04, 0xd5, 0x47, 0x93, 0x17, 0x25, 0x80, 0xce, 0xc2, 0x0b, 0x0d, 0x53, 0xe2, 0xb2, + 0x39, 0x40, 0xbe, 0x93, 0xa3, 0x26, 0x2c, 0xa4, 0xcc, 0xf2, 0x5c, 0x50, 0x67, 0x11, 0x28, 0x10, + 0x79, 0x2a, 0xac, 0xc1, 0x2c, 0x61, 0x2c, 0xc1, 0x54, 0x9f, 0xf9, 0xfa, 0x09, 0xbd, 0x07, 0x48, + 0xfd, 0x72, 0x5c, 0x26, 0xdc, 0xb1, 0x2f, 0xb6, 0x80, 0x69, 0xe9, 0xb3, 0xac, 0x2c, 0xc7, 0xda, + 0x70, 0xe6, 0xdb, 0x5f, 0x4f, 0xc1, 0xd2, 0xc0, 0x8e, 0x2a, 0x8e, 0x85, 0x74, 0x4f, 0xd5, 0xbc, + 0xd9, 0x33, 0xfa, 0x0c, 0x76, 0x64, 0x63, 0x67, 0xfb, 0x74, 0xa9, 0xbe, 0x53, 0x93, 0x7b, 0x5c, + 0x20, 0xa4, 0xa4, 0x03, 0xa5, 0xdd, 0x87, 0x95, 0xfc, 0x08, 0x88, 0xba, 0xc4, 0x13, 0x47, 0xde, + 0x74, 0x73, 0x5a, 0x04, 0x9f, 0x6d, 0xf4, 0x7a, 0x1c, 0x9d, 0x81, 0xdd, 0x8e, 0xc4, 0x39, 0xab, + 0x83, 0xc8, 0x66, 0x4a, 0x55, 0xa4, 0xf3, 0x27, 0x8f, 0xd4, 0x6a, 0x6b, 0x5b, 0x7a, 0x2a, 0xb6, + 0x94, 0xfb, 0x25, 0xbe, 0xe6, 0x17, 0x32, 0xa3, 0xe8, 0xd7, 0xb0, 0x3f, 0x19, 0xca, 0x79, 0x43, + 0xf8, 0x95, 0x13, 0xb4, 0x5d, 0x6b, 0x46, 0x62, 0xde, 0x1d, 0x8b, 0xf9, 0x29, 0xe1, 0x57, 0x2f, + 0xda, 0xae, 0xfd, 0x97, 0x0a, 0xac, 0x08, 0xb5, 0x27, 0x8f, 0x9e, 0xb7, 0x42, 0x9e, 0x62, 0x40, + 0x66, 0xc0, 0x5a, 0x9c, 0xbe, 0x0b, 0xb3, 0x1d, 0x39, 0xa2, 0xa5, 0x69, 0xe9, 0x54, 0xd5, 0xe6, + 0x6f, 0x2c, 0x4b, 0xdf, 0x81, 0xa5, 0x67, 0x58, 0xb1, 0x8c, 0x12, 0x65, 0xbf, 0x04, 0xa4, 0x44, + 0xe9, 0x38, 0x2f, 0x74, 0x0f, 0x66, 0x24, 0xb5, 0xee, 0xbd, 0x52, 0x60, 0xca, 0x6a, 0x5f, 0x03, + 0x52, 0x5a, 0xb4, 0x00, 0x96, 0x4d, 0xae, 0x8c, 0x9b, 0xfc, 0xed, 0x34, 0xe8, 0x5d, 0x40, 0x4a, + 0x83, 0x8e, 0x5d, 0xac, 0x0d, 0xcb, 0xc7, 0xbe, 0xff, 0x42, 0x4a, 0x93, 0x51, 0x3e, 0xf7, 0x60, + 0xb5, 0x85, 0x83, 0xa8, 0x87, 0xc7, 0xbb, 0xfd, 0xb5, 0xa2, 0x4a, 0xa8, 0xbc, 0xde, 0x8a, 0xa6, + 0xfb, 0x5c, 0x7d, 0xc6, 0x65, 0x11, 0xeb, 0xae, 0xdb, 0x87, 0x39, 0x25, 0xd6, 0xc6, 0x7c, 0x11, + 0xa5, 0x1e, 0xdf, 0xb8, 0xf3, 0xfe, 0x5d, 0x85, 0x19, 0x59, 0x8a, 0x52, 0x2b, 0x0d, 0xaa, 0xe6, + 0xa9, 0xb2, 0x6a, 0x36, 0x22, 0x9a, 0x9e, 0x18, 0xd1, 0x03, 0x98, 0x8d, 0xde, 0x84, 0xc2, 0xf7, + 0xc6, 0x28, 0x5f, 0xed, 0x30, 0xa8, 0x8f, 0x67, 0xca, 0xfa, 0xb8, 0x28, 0xba, 0x67, 0x07, 0x45, + 0xf7, 0x50, 0x2d, 0x3b, 0xf7, 0x1d, 0x69, 0xd9, 0xea, 0xff, 0xae, 0x65, 0x9f, 0x43, 0x1d, 0x5f, + 0xc7, 0x84, 0xaa, 0xcf, 0x9b, 0x1c, 0x6a, 0x7e, 0x22, 0x14, 0xca, 0xe7, 0x65, 0x68, 0x1f, 0xc0, + 0xfa, 0x15, 0xf1, 0xb1, 0x3a, 0x79, 0x5d, 0xdf, 0xa7, 0x98, 0x31, 0xa7, 0x4b, 0x18, 0x67, 0xf2, + 0x2b, 0xa3, 0xda, 0xaa, 0x0b, 0xb3, 0x38, 0x52, 0x8f, 0x95, 0x51, 0x74, 0x13, 0x43, 0x3b, 0x00, + 0x42, 0xd9, 0x5c, 0x92, 0x2e, 0xe1, 0x7d, 0xfd, 0xd1, 0x61, 0x8c, 0x7c, 0x2f, 0xb8, 0xff, 0x1f, + 0x82, 0xfb, 0x27, 0xb0, 0x61, 0x4e, 0x0b, 0x31, 0x77, 0x2e, 0x49, 0xc4, 0x4c, 0xa9, 0x6d, 0x24, + 0xef, 0x25, 0xe6, 0x8f, 0x49, 0xc4, 0xe4, 0xcc, 0x93, 0xc9, 0x22, 0x7b, 0x53, 0xce, 0xff, 0x96, + 0x42, 0x7a, 0xeb, 0x3b, 0x13, 0xd2, 0xf6, 0x3f, 0x2a, 0xb0, 0x39, 0x66, 0xb6, 0x90, 0x5b, 0x9e, + 0xcb, 0x71, 0x27, 0xa2, 0xfd, 0x54, 0x6e, 0xa5, 0xcf, 0xe8, 0x17, 0x80, 0x22, 0xcf, 0x4b, 0x28, + 0x2d, 0xbc, 0x8b, 0x93, 0x25, 0xd6, 0x72, 0x3a, 0x2b, 0x5b, 0xf3, 0xfb, 0xb0, 0x16, 0xd3, 0x28, + 0xc6, 0x94, 0xf7, 0x1d, 0xcf, 0x4d, 0x58, 0xb6, 0x56, 0x2d, 0x0d, 0xeb, 0xa9, 0xf5, 0x44, 0x19, + 0x55, 0x6c, 0x75, 0x98, 0xe9, 0xb9, 0xdd, 0x24, 0xbd, 0x97, 0x50, 0x0f, 0x47, 0x7f, 0xba, 0x01, + 0x4b, 0xe9, 0xdd, 0xd5, 0x05, 0xa6, 0x3d, 0xe2, 0x61, 0xe4, 0xc1, 0x82, 0x79, 0xa5, 0x85, 0xb6, + 0xf3, 0xd4, 0x0d, 0xb9, 0x9d, 0x6b, 0xec, 0x8c, 0x32, 0xab, 0x6d, 0xdf, 0xae, 0xff, 0xf1, 0x9f, + 0xff, 0xfa, 0xf3, 0xd4, 0x4d, 0xb4, 0x70, 0xd8, 0x7b, 0x78, 0x98, 0x5d, 0x78, 0xfd, 0x0e, 0x20, + 0xbf, 0xc8, 0x42, 0x9b, 0xc6, 0x51, 0x3d, 0x78, 0xbd, 0xd5, 0x28, 0x6f, 0xb4, 0xf6, 0x8e, 0xc4, + 0xb4, 0xd0, 0xaa, 0x89, 0x79, 0xf8, 0x7b, 0xe2, 0x7f, 0xb4, 0xf7, 0xd5, 0xa3, 0xca, 0x1e, 0x72, + 0x61, 0xb1, 0x70, 0x03, 0x86, 0x8c, 0x20, 0x87, 0x5d, 0x8d, 0x0d, 0xe3, 0xd8, 0x96, 0x1c, 0xeb, + 0x76, 0x21, 0xee, 0x47, 0xd9, 0x4d, 0x56, 0x0c, 0x8b, 0x85, 0xeb, 0x30, 0x93, 0x62, 0xd8, 0x3d, + 0xd9, 0x30, 0x8a, 0xf7, 0x24, 0xc5, 0xfd, 0xa3, 0xcd, 0xe2, 0x32, 0xf4, 0xaf, 0x03, 0xb5, 0x9c, + 0x8c, 0xd1, 0x87, 0xc5, 0xc2, 0xf5, 0x97, 0xc9, 0x38, 0xec, 0x5e, 0xac, 0xb1, 0x56, 0x6a, 0xab, + 0x27, 0x41, 0xcc, 0xfb, 0xf6, 0xa6, 0xa4, 0xbd, 0xb5, 0x37, 0x2c, 0x7b, 0x47, 0x7f, 0x9f, 0x85, + 0x45, 0x25, 0x17, 0xd3, 0x7e, 0xf8, 0x2d, 0x40, 0xae, 0x21, 0xcd, 0x52, 0x95, 0xa4, 0x70, 0x63, + 0x6b, 0xb8, 0x51, 0x77, 0x02, 0x92, 0xbc, 0x0b, 0x08, 0x04, 0xaf, 0x56, 0x98, 0xaf, 0xa0, 0x9a, + 0x2a, 0x47, 0xb4, 0x51, 0xe8, 0x02, 0x53, 0x60, 0x35, 0x06, 0xb5, 0x9c, 0xbd, 0x25, 0xb1, 0xd6, + 0xd0, 0x4a, 0x8e, 0x65, 0xd4, 0xff, 0x53, 0xa8, 0x19, 0x62, 0x13, 0x6d, 0x0d, 0x56, 0x7f, 0x3c, + 0xf6, 0x86, 0xc4, 0x5e, 0xb5, 0x8d, 0x38, 0x1f, 0x69, 0xed, 0xe8, 0x43, 0xcd, 0x10, 0x9e, 0x26, + 0x70, 0x59, 0x8f, 0x96, 0x81, 0xef, 0x4b, 0xe0, 0xe6, 0xd1, 0xba, 0x19, 0xb4, 0xfc, 0xab, 0x6b, + 0xad, 0x59, 0x3e, 0x83, 0x9a, 0x21, 0x32, 0x4d, 0x96, 0xb2, 0xf6, 0x1c, 0x59, 0x65, 0xbd, 0x8a, + 0xbd, 0x72, 0x86, 0x90, 0x07, 0xf3, 0x99, 0x3c, 0x45, 0x0d, 0xa3, 0x2f, 0x07, 0x34, 0x6b, 0x79, + 0x05, 0x0f, 0x24, 0xe8, 0x1d, 0x7b, 0xa7, 0x04, 0x7a, 0xa8, 0x75, 0xd2, 0xe1, 0x5d, 0x8a, 0xdb, + 0xa2, 0x06, 0x3d, 0x58, 0x30, 0xf5, 0xad, 0xb9, 0x8d, 0x0c, 0xd1, 0xbd, 0x65, 0xaa, 0x1f, 0x49, + 0xaa, 0x87, 0x7b, 0xfb, 0xa3, 0xa9, 0x8c, 0x37, 0xe5, 0xab, 0x8c, 0x97, 0x42, 0xcd, 0x50, 0x9f, + 0x68, 0xa0, 0x25, 0x8b, 0x32, 0xba, 0xb1, 0x3d, 0xc2, 0xaa, 0x3b, 0x56, 0x17, 0x0c, 0x4d, 0x58, + 0xee, 0xe3, 0xfa, 0x6f, 0x50, 0xfc, 0xba, 0xa3, 0xfe, 0xb3, 0x71, 0xd8, 0x7b, 0xf8, 0xa1, 0x2a, + 0xc5, 0xac, 0xfc, 0xf3, 0xc3, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x9c, 0x9a, 0x29, 0x88, 0x91, + 0x19, 0x00, 0x00, } diff --git a/pkg/proto/v0/accounts.proto b/pkg/proto/v0/accounts.proto index bf1281f9f..a9bfb28da 100644 --- a/pkg/proto/v0/accounts.proto +++ b/pkg/proto/v0/accounts.proto @@ -204,273 +204,169 @@ message DeleteAccountRequest { // See https://docs.microsoft.com/en-us/graph/api/resources/user?view=graph-rest-1.0#properties message Account { - // A freeform text entry field for the user to describe themselves. - string about_me = 1; + // Note that field numbers in the range 1 through 15 take one byte to encode, including the field number and the field's type + + // The unique identifier for the user. Key. Not nullable. Non reassignable. Read-only. + string id = 1; // *true* if the account is enabled; otherwise, *false*. This property is required when a user is created. Supports $filter. bool account_enabled = 2; - // Sets the age group of the user. Allowed values: null, minor, notAdult and adult. Refer to the legal age group property definitions for further information. - string age_group = 3; - - // The licenses that are assigned to the account. Not nullable. - repeated AssignedLicense assigned_licenses = 4; - - // The plans that are assigned to the account. Read-only. Not nullable. - repeated AssignedPlan assigned_plans = 5; - - // The birthday of the user. - google.protobuf.Timestamp birthday = 6; - - // The telephone numbers for the user. NOTE: Although this is a string collection, only one number can be set for this property. - repeated string business_phones = 7; - - // The city in which the user is located. Supports $filter. - string city = 8; - - // The company name which the user is associated. This property can be useful for describing the company that an external user comes from. - string company_name = 9; - - // Sets whether consent has been obtained for minors. Allowed values: null, granted, denied and notRequired. Refer to the legal age group property definitions for further information. - string consent_provided_for_minor = 10; - - // The country/region in which the user is located; for example, “US” or “UK”. Supports $filter. - string country = 11; - - // The created date of the account object. - google.protobuf.Timestamp created_date_time = 12; + // A resource account is also known as a /disabled user object/ in Azure AD, and can be used to represent resources in general. + // In Exchange it might be used to represent conference rooms, for example, and allow them to have a phone number. + // You could give printers or machines with a sync client resource accounts as well. + // A resource account can be homed in Microsoft 365 or on premises using Skype for Business Server 2019. + // *true* if the user is a resource account; otherwise, *false*. Null value should be considered false. + bool is_resource_account = 3; // Indicates whether the account was created as - // - a regular school or work account (null), + // - a regular school or work account ("" / emptystring), + // - a local account, fully managed by ocis (LocalAccount), includes synced accounts or // - an external account (Invitation), - // - a local account for an Azure Active Directory B2C tenant (LocalAccount) or // - self-service sign-up using email verification (EmailVerified). Read-only. - string creation_type = 13; + string creation_type = 4; - // The date and time the user was deleted. Returned only on $select. - google.protobuf.Timestamp deleted_date_time = 14; + // Represents the identities that can be used to sign in to this account. + // An identity can be provided by OCIS (also known as a local account), by organizations, or by social identity providers such as Facebook, Google, and Microsoft, and is tied to an account. + // May contain multiple items with the same signInType value. Supports $filter. + repeated Identities identities = 5; - // The name for the department in which the user works. Supports $filter. - string department = 15; + // posixaccount properties // The name displayed in the address book for the account. // This is usually the combination of the user's first name, middle initial and last name. // This property is required when a user is created and it cannot be cleared during updates. // Supports $filter and $orderby. - string display_name = 16; + // posixaccount MUST cn + string display_name = 6; - // The employee identifier assigned to the user by the organization. Supports $filter. - string employee_id = 17; + // The username + // posixaccount MUST uid + string username = 7; - // For an external user invited to the tenant using the invitation API, this property represents the invited user's invitation status. - // For invited users, the state can be `PendingAcceptance` or `Accepted`, or emptystring / null for all other users. - // Returned only on $select. Supports $filter with the supported values. For example: $filter=externalUserState eq 'PendingAcceptance'. - string external_user_state = 18; + // used for exposing the user using ldap + // posixaccount MUST uidnumber + int64 uid_number = 8; - // Shows the timestamp for the latest change to the externalUserState property. Returned only on $select. - // note: in the ms graph beta this changed to a string ?!? - google.protobuf.Timestamp external_user_state_change_date_time = 19; + // used for exposing the user using ldap + // posixaccount MUST gidnumber + int64 gid_number = 9; - // The fax number of the account. - string fax_number = 20; + // posixaccount MUST homedirectory + // constructed dynamically in glauth - // The given name (first name) of the user. Supports $filter. - string given_name = 21; + // posixaccount MAY loginshell + // posixaccount MAY gecos - // The hire date of the user. - google.protobuf.Timestamp hire_date = 22; - - // The unique identifier for the user. Key. Not nullable. Non reassignable. Read-only. - string id = 23; - - // Represents the identities that can be used to sign in to this user account. - // An identity can be provided by OCIS (also known as a local account), by organizations, or by social identity providers such as Facebook, Google, and Microsoft, and is tied to an account. - // May contain multiple items with the same signInType value. Supports $filter. - repeated Identities identities = 24; - - // The instant message voice over IP (VOIP) session initiation protocol (SIP) addresses for the user. Read-only. - repeated string im_addresses = 25; - - // A list for the user to describe their interests. - repeated string interests = 26; - - // *true* if the user is a resource account; otherwise, *false*. Null value should be considered false. - bool is_resource_account = 27; - - // The user’s job title. Supports $filter. - string job_title = 28; - - // The time when this account last changed their password. - google.protobuf.Timestamp last_password_change_date_time = 29; - - // Used by enterprise applications to determine the legal age group of the user. - // This property is read-only and calculated based on `ageGroup` and `consentProvidedForMinor` properties. - // Allowed values: `null`, `minorWithOutParentalConsent`, `minorWithParentalConsent`, `minorNoParentalConsentRequired`, `notAdult` and `adult`. - // Refer to the legal age group property definitions for further information.) - string legal_age_group_classification = 30; - - // State of license assignments for this user. Read-only. - // licenseAssignmentState collection licenseAssignmentStates = 31 + // For the GECOS field: + // - User's full name (or application name, if the account is for a program) -> displayname (description) + // - Building and room number or contact person -> - + // - Office telephone number -> - + // - Any other contact information (pager number, fax, etc.) -> mail + // eg "Albert Einstein (Beware! I'm doing science!),,,einstein@example.com" as the gecos // The SMTP address for the user, for example, "jeff@contoso.onmicrosoft.com". Read-Only. Supports $filter. - string mail = 32; + // inetorgperson MAY mail + string mail = 10; - // Settings for the primary mailbox of the signed-in user. You can get or update settings for sending automatic replies to incoming messages, locale and time zone. - // mailboxSettings mailboxSettings = 33 + // A description, useful for resource accounts + // posixaccount MAY description + string description = 11; - // The mail alias for the user. This property must be specified when a user is created. Supports $filter. - string mail_nickname = 34; + // Specifies the password profile for the user. + // The profile contains the user’s password. This property is required when a user is created. + // The password in the profile must satisfy minimum requirements as specified by the passwordPolicies property. + // By default, a strong password is required. + // posixaccount MAY authPassword + PasswordProfile password_profile = 12; - // The primary cellular telephone number for the user. - string mobile_phone = 35; + // The groups, directory roles and administrative units that the user is a member of. Read-only. Nullable. + // should we only respond with repeated strings of ids? no clients should a proper filter mask! + repeated Group memberOf = 13; - // The URL for the user's personal site. - string my_site = 36; + // Field numbers in the range 16 through 2047 take two bytes. So you should reserve the field numbers 1 through 15 for very frequently occurring message elements. Remember to leave some room for frequently occurring elements that might be added in the future. - // The office location in the user's place of business. - string office_location = 37; + // The created date of the account object. + google.protobuf.Timestamp created_date_time = 16; - // Contains the on-premises LDAP `distinguished name` or `DN`. - // The property is only populated for customers who are synchronizing their on-premises directory to ocis-accounts. Read-only. - string on_premises_distinguished_name = 38; + // The date and time the user was deleted. Returned only on $select. + google.protobuf.Timestamp deleted_date_time = 17; - // Contains the on-premises `domainFQDN`, also called `dnsDomainName` synchronized from the on-premises directory - // The property is only populated for customers who are synchronizing their on-premises directory to ocis-accounts. Read-only. - string on_premises_domain_name = 39; - - // Contains extensionAttributes 1-15 for the user. Note that the individual extension attributes are neither selectable nor filterable. - // For an onPremisesSyncEnabled user, this set of properties is mastered on-premises and is read-only. - // For a cloud-only user (where onPremisesSyncEnabled is false), these properties may be set during creation or update. - //onPremisesExtensionAttributes onPremisesExtensionAttributes = 40 - - // This property is used to associate an on-premises LDAP user to the ocis account object. - // This property must be specified when creating a new user account in the Graph if you are using a federated domain for the user’s userPrincipalName (UPN) property. - // Important: The $ and _ characters cannot be used when specifying this property. Supports $filter. - string on_premises_immutable_id = 41; - - // Indicates the last time at which the object was synced with the on-premises directory; Read-only. - google.protobuf.Timestamp on_premises_last_sync_date_time = 42; - - // Errors when using synchronization during provisioning. - repeated OnPremisesProvisioningError on_premises_provisioning_errors = 43; - - // Contains the on-premises `samAccountName` synchronized from the on-premises directory. - // The property is only populated for customers who are synchronizing their on-premises directory to ocis-accounts. Read-only. - string on_premises_sam_account_name = 44; - - // Contains the on-premises security identifier (SID) for the user that was synchronized from on-premises to the cloud. Read-only. - string on_premises_security_identifier = 45; + // properties for sync // *true* if this object is synced from an on-premises directory; // *false* if this object was originally synced from an on-premises directory but is no longer synced; // null if this object has never been synced from an on-premises directory (default). Read-only - bool on_premises_sync_enabled = 46; + bool on_premises_sync_enabled = 20; + + // This property is used to associate an on-premises LDAP user to the ocis account object. + // This property must be specified when creating a new user account in the Graph if you are using a federated domain for the user’s userPrincipalName (UPN) property. + // Important: The $ and _ characters cannot be used when specifying this property. Supports $filter. + string on_premises_immutable_id = 21; + + // Contains the on-premises security identifier (SID) for the user that was synchronized from on-premises to the cloud. Read-only. + string on_premises_security_identifier = 22; + + // Contains the on-premises LDAP `distinguished name` or `DN`. + // The property is only populated for customers who are synchronizing their on-premises directory to ocis-accounts. Read-only. + string on_premises_distinguished_name = 23; + + // Contains the on-premises `samAccountName` synchronized from the on-premises directory. + // The property is only populated for customers who are synchronizing their on-premises directory to ocis-accounts. Read-only. + string on_premises_sam_account_name = 24; + + // Contains the on-premises `domainFQDN`, also called `dnsDomainName` synchronized from the on-premises directory + // The property is only populated for customers who are synchronizing their on-premises directory to ocis-accounts. Read-only. + string on_premises_domain_name = 25; // Contains the on-premises userPrincipalName synchronized from the on-premises directory. // The property is only populated for customers who are synchronizing their on-premises directory to ocis-accounts. Read-only. - string on_premises_user_principal_name = 47; + string on_premises_user_principal_name = 26; - // A list of additional email addresses for the user; for example: ["bob@contoso.com", "Robert@fabrikam.com"]. Supports $filter. - // note: in ms graph v1.0 this is a string. in the beta api it is a string collection - repeated string other_mails = 48; + // Contains extensionAttributes 1-15 for the user. Note that the individual extension attributes are neither selectable nor filterable. + // For an onPremisesSyncEnabled user, this set of properties is mastered on-premises and is read-only. + // For a cloud-only user (where onPremisesSyncEnabled is false), these properties may be set during creation or update. + //onPremisesExtensionAttributes onPremisesExtensionAttributes = 27 - // Specifies password policies for the user. This value is an enumeration with one possible value being “DisableStrongPassword”, which allows weaker passwords than the default policy to be specified. “DisablePasswordExpiration” can also be specified. The two may be specified together; for example: "DisablePasswordExpiration, DisableStrongPassword". - string password_policies = 49; + // Indicates the last time at which the object was synced with the on-premises directory; Read-only. + google.protobuf.Timestamp on_premises_last_sync_date_time = 28; - // Specifies the password profile for the user. The profile contains the user’s password. This property is required when a user is created. The password in the profile must satisfy minimum requirements as specified by the passwordPolicies property. By default, a strong password is required. - // passwordProfile passwordProfile = 50 + // Errors when using synchronization during provisioning. + repeated OnPremisesProvisioningError on_premises_provisioning_errors = 29; - // A list for the user to enumerate their past projects. - repeated string past_projects = 51; + // TODO do we need to sync uidnumber and gidnumber from the external ldap? we may assign different numbers so eos has a non colliding namespace. + // we can sync them to the (uid|gid)_number fileds but what if they changed in the external ldap and now collide? + // move those properties to a posixaccount message so we can exchange that part with an external (readonly or writeable) ldap server? - // The postal code for the user's postal address. The postal code is specific to the user's country/region. In the United States of America, this attribute contains the ZIP code. - string postal_code = 52; + // For an external user invited to the tenant using the invitation API, this property represents the invited user's invitation status. + // For invited users, the state can be `PendingAcceptance` or `Accepted`, or "" / emptystring for all other users. + // Returned only on $select. Supports $filter with the supported values. For example: $filter=externalUserState eq 'PendingAcceptance'. + string external_user_state = 40; - // The preferred data location for the user. For more information, see OneDrive Online Multi-Geo. https://docs.microsoft.com/sharepoint/dev/solution-guidance/multigeo-introduction string preferredDataLocation = 53; - string preferred_data_location = 53; - - // The preferred language for the user. Should follow ISO 639-1 Code; for example "en-US". - string preferred_language = 54; - - // The preferred name for the user. - string preferred_name = 55; - - // The plans that are provisioned for the user. Read-only. Not nullable. - // repeated provisionedPlans provisionedPlans = 56 - - // For example: ["SMTP: bob@contoso.com", "smtp: bob@sales.contoso.com"] - // The any operator is required for filter expressions on multi-valued properties. Read-only, Not nullable. Supports $filter. - repeated string proxy_addresses = 57; + // Shows the timestamp for the latest change to the externalUserState property. Returned only on $select. + google.protobuf.Timestamp external_user_state_change_date_time = 41; // Any refresh tokens or sessions tokens (session cookies) issued before this time are invalid, and applications will get // an error when using an invalid refresh or sessions token to acquire a delegated access token (to access APIs such as Microsoft Graph). // If this happens, the application will need to acquire a new refresh token by making a request to the authorize endpoint. // Returned only on $select. Read-only. Use invalidateAllRefreshTokens to reset. - google.protobuf.Timestamp refresh_tokens_valid_from_date_time = 58; - - // A list for the user to enumerate their responsibilities. - repeated string responsibilities = 59; - - // A list for the user to enumerate the schools they have attended. - repeated string schools = 60; - - // *true* if the Outlook global address list should contain this user, otherwise *false*. If not set, this will be treated as *true*. - // For users invited through the invitation manager, this property will be set to *false*. - bool show_in_address_list = 61; + google.protobuf.Timestamp refresh_tokens_valid_from_date_time = 60; // Any refresh tokens or sessions tokens (session cookies) issued before this time are invalid, and applications will get // an error when using an invalid refresh or sessions token to acquire a delegated access token (to access APIs such as Microsoft Graph). // If this happens, the application will need to acquire a new refresh token by making a request to the authorize endpoint. // Read-only. Use revokeSignInSessions to reset. - google.protobuf.Timestamp sign_in_sessions_valid_from_date_time = 62; - - // Get the last signed-in date and request ID of the sign-in for a given user. - // Supports $filter, but not with any other filterable properties. - // Returned only on $select. Read-only. - //signInActivity signInActivity = 63 - - // A list for the user to enumerate their skills. - repeated string skills = 64; - - // The state or province in the user's address. Supports $filter - string state = 65; - - // The street address of the user's place of business. - string street_address = 66; - - // The user's surname (family name or last name). Supports $filter. - string surname = 67; - - // A two letter country code (ISO standard 3166). Required for users that will be assigned licenses due to legal requirement to check for availability of services in countries. Examples include: "US", "JP", and "GB". Not nullable. Supports $filter. - string usage_location = 68; - - // The user principal name (UPN) of the user. The UPN is an Internet-style login name for the user based on the Internet standard RFC 822. - // By convention, this should map to the user's email name. The general format is alias@domain, - // where domain must be present in the tenant’s collection of verified domains. - // This property is required when a user is created. The verified domains for the tenant can be accessed - // from the verifiedDomains property of organization. Supports $filter and $orderby. - string user_principal_name = 69; - - // A string value that can be used to classify user types in your directory, such as “Member” and “Guest”. Supports $filter. - string user_type = 70; - - // Properties that are not part of the graph API: - - // The users password. Used when updating the users password - // TODO: the username is stored as an identity? - string password = 71; - - - // relationships - - // The groups, directory roles and administrative units that the user is a member of. Read-only. Nullable. - repeated Group memberOf = 100; + google.protobuf.Timestamp sign_in_sessions_valid_from_date_time = 61; } +// Identities Represents an identity used to sign in to a user account. +// An identity can be provided by ocis, by organizations, or by social identity providers such as Facebook, Google, or Microsoft, that are tied to a user account. +// This enables the user to sign in to the user account with any of those associated identities. +// They are also used to keep a history of old usernames. message Identities { // Specifies the user sign-in types in your directory, such as `emailAddress`, `userName` or `federated`. // Here, federated represents a unique identifier for a user from an issuer, that can be in any format chosen by the issuer. - // Additional validation is enforced on *issuerAssignedId* when the sign-in type is set to `emailAddress` or `userName`. + // Additional validation is enforced on *issuer_assigned_id* when the sign-in type is set to `emailAddress` or `userName`. // This property can also be set to any custom string. string sign_in_type = 1; @@ -478,19 +374,37 @@ message Identities { // For local accounts (where signInType is not federated), this property is // the local B2C tenant default domain name, for example contoso.onmicrosoft.com. // For external users from other Azure AD organization, this will be the domain of - // the federated organization, for example contoso.com. + // the federated organization, for example contoso.com. // Supports $filter. 512 character limit. string issuer = 2; // Specifies the unique identifier assigned to the user by the issuer. The combination of *issuer* and *issuerAssignedId* must be unique within the organization. Represents the sign-in name for the user, when signInType is set to emailAddress or userName (also known as local accounts). // When *signInType* is set to: // * `emailAddress`, (or starts with `emailAddress` like `emailAddress1`) *issuerAssignedId* must be a valid email address - // * `userName`, issuerAssignedId must be a valid local part of an email address + // * `userName`, issuer_assigned_id must be a valid local part of an email address // Supports $filter. 512 character limit. string issuer_assigned_id = 3; } +message PasswordProfile { + // The password for the user. This property is required when a user is created. + // It can be updated, but the user will be required to change the password on the next login. + // The password must satisfy minimum requirements as specified by the user’s passwordPolicies property. By default, a strong password is required. + string password = 1; -// TODO additional user methods? https://docs.microsoft.com/en-us/graph/api/resources/user?view=graph-rest-1.0#methods + // The time when this account last changed their password. + google.protobuf.Timestamp last_password_change_date_time = 2; + + // Specifies password policies for the user. + //This value is an enumeration with one possible value being “DisableStrongPassword”, which allows weaker passwords than the default policy to be specified. + // “DisablePasswordExpiration” can also be specified. + repeated string password_policies = 3; + + // *true* if the user must change her password on the next login; otherwise false. + bool force_change_password_next_sign_in = 4; + + // If *true*, at next sign-in, the user must perform a multi-factor authentication (MFA) before being forced to change their password. The behavior is identical to forceChangePasswordNextSignIn except that the user is required to first perform a multi-factor authentication before password change. After a password change, this property will be automatically reset to false. If not set, default is false. + bool force_change_password_next_sign_in_with_mfa = 5; +} message ListGroupsRequest { // Optional. The maximum number of groups to return in the response @@ -579,6 +493,10 @@ message ListMembersRequest { // that indicates from where search should continue string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Used to specify a subset of fields that should be + // returned by a get operation or modified by an update operation. + google.protobuf.FieldMask field_mask = 3; + // Optional. Search criteria used to select the groups to return. // If no search criteria is specified then all groups will be // returned @@ -597,7 +515,7 @@ message ListMembersRequest { // starts with "Th" // * Query `display_name=\\"Test String\\"` returns groups with // display names that include both "Test" and "String" - string query = 3 [(google.api.field_behavior) = OPTIONAL]; + string query = 4 [(google.api.field_behavior) = OPTIONAL]; } message ListMembersResponse { @@ -612,29 +530,45 @@ message ListMembersResponse { } message Group { - // Indicates if people external to the organization can send messages to the group. Default value is false. - // Returned only on $select. - bool allow_external_senders = 1; - // The list of sensitivity label pairs (label ID, label name) associated with an Office 365 group. - //Returned only on $select. Read-only. - repeated AssignedLabel assigned_labels = 2; + // The unique identifier for the group. + // Returned by default. Inherited from directoryObject. Key. Not nullable. Read-only. + string id = 1; - // The licenses that are assigned to the group. - // Returned only on $select. Read-only. - repeated AssignedLicense assigned_licenses = 3; + // groupofnames - // Indicates if new members added to the group will be auto-subscribed to receive email notifications. You can set this property in a PATCH request for the group; do not set it in the initial POST request that creates the group. Default value is false. - // Returned only on $select. - bool auto_subscribe_new_members = 4; + // The display name for the group. This property is required when a group is created and cannot be cleared during updates. + // Returned by default. Supports $filter and $orderby. + // groupofnames MUST cn + string display_name = 2; + // groupofnames MUST/MAY member - // Describes a classification for the group (such as low, medium or high business impact). Valid values for this property are defined by creating a ClassificationList setting value, based on the template definition. - // Returned by default. - string classification = 5; + // Users, contacts, and groups that are members of this group. HTTP Methods: GET (supported for all groups), POST (supported for security groups and mail-enabled security groups), DELETE (supported only for security groups) Read-only. Nullable. + // TODO accounts (users) only for now, we can add groups with the dedicated message using oneof construct later + repeated Account members = 3; + + // groupofnames MAY businessCategory + // groupofnames MAY o + // groupofnames MAY ou + // groupofnames MAY owner, SINGLE-VALUE but there might be multiple owners + repeated Account owners = 4; + + // An optional description for the group. Returned by default. + // groupofnames MAY description + string description = 5; + + // groupofnames MAY seeAlso + + // posixgroup + + // used for exposing the user using ldap + // posixgroup MUST gidnumber + int64 gid_number = 6; + // posixgroup MAY authPassword + // posixgroup MAY userPassword + // posixgroup MAY memberUid -> groupofnames member + // posixgroup MAY description -> groupofnames - // App ID of the app used to create the group. Can be null for some groups. - // Returned by default. Read-only. Supports $filter. - string created_by_app_id = 6; // Timestamp of when the group was created. The value cannot be modified and is automatically populated when the group is created // Returned by default. Read-only. @@ -644,179 +578,60 @@ message Group { // Returned by default. Read-only. google.protobuf.Timestamp deleted_date_time = 8; - // An optional description for the group. Returned by default. - string description = 9; - - // The display name for the group. This property is required when a group is created and cannot be cleared during updates. - // Returned by default. Supports $filter and $orderby. - string display_name = 10; - // Timestamp of when the group is set to expire. The value cannot be modified and is automatically populated when the group is created. // Returned by default. Read-only. - google.protobuf.Timestamp expiration_date_time = 11; - - // Specifies the group type and its membership. - // If the collection contains `Unified` then the group is an Office 365 group; otherwise it's a security group. - // If the collection includes `DynamicMembership`, the group has dynamic membership; otherwise, membership is static. - // Returned by default. Supports $filter. - repeated string group_types = 12; - - // Indicates whether there are members in this group that have license errors from its group-based license assignment. - // This property is never returned on a GET operation. You can use it as a $filter argument to get groups that have members with license errors (that is, filter for this property being true). - bool has_members_with_license_errors = 13; + google.protobuf.Timestamp expiration_date_time = 9; // True if the group is not displayed in certain parts of the Outlook user interface: // in the Address Book, in address lists for selecting message recipients, and in the Browse Groups dialog for searching groups; false otherwise. Default value is false. // Returned only on $select. - bool hide_from_address_lists = 14; + bool hide_from_address_lists = 10; - // True if the group is not displayed in Outlook clients, such as Outlook for Windows and Outlook on the web, false otherwise. Default value is false. - // Returned only on $select. - bool hide_from_outlook_clients = 15; - - // The unique identifier for the group. - // Returned by default. Inherited from directoryObject. Key. Not nullable. Read-only. - string id = 16; - - // Indicates whether the signed-in user is subscribed to receive email conversations. Default value is true. - // Returned only on $select. - bool is_subscribed_by_mail = 17; - - // Indicates status of the group license assignment to all members of the group. - // Possible values: `QueuedForProcessing`, `ProcessingInProgress`, and `ProcessingComplete`. - // Returned only on $select. Read-only. - string license_processing_state = 18; - - // The SMTP address for the group, for example, "serviceadmins@contoso.onmicrosoft.com". - // Returned by default. Read-only. Supports $filter. - string mail = 19; - - // Specifies whether the group is mail-enabled. + // Specifies the visibility of an Office 365 group. Possible values are: Private, Public, or Hiddenmembership; blank values are treated as public. See group visibility options to learn more. + // Visibility can be set only when a group is created; it is not editable. // Returned by default. - bool mail_enabled = 20; + string visibility = 11; - // The mail alias for the group, unique in the organization. This property must be specified when a group is created. - // Returned by default. Supports $filter. - string mail_nickname = 21; + // Field numbers in the range 16 through 2047 take two bytes. So you should reserve the field numbers 1 through 15 for very frequently occurring message elements. Remember to leave some room for frequently occurring elements that might be added in the future. - // The rule that determines members for this group if the group is a dynamic group (groupTypes contains DynamicMembership). For more information about the syntax of the membership rule, see Membership Rules syntax. - // Returned by default. - string membership_rule = 22; - - // Indicates whether the dynamic membership processing is on or paused. Possible values are "On" or "Paused". - // Returned by default. - string membership_rule_processing_state = 23; - - // Contains the on-premises domain FQDN, also called dnsDomainName synchronized from the on-premises directory. The property is only populated for customers who are synchronizing their on-premises directory to Azure Active Directory via Azure AD Connect. - // Returned by default. Read-only. - string on_premises_domain_name = 24; - - // Indicates the last time at which the group was synced with the on-premises directory. - // Returned by default. Read-only. Supports $filter. - string on_premises_last_sync_date_time = 25; - - // Contains the on-premises netBios name synchronized from the on-premises directory. The property is only populated for customers who are synchronizing their on-premises directory to Azure Active Directory via Azure AD Connect. - // Returned by default. Read-only. - string on_premises_net_bios_name = 26; - - // Errors when using synchronization during provisioning. - repeated OnPremisesProvisioningError on_premises_provisioning_errors = 27; - - // Contains the on-premises `samAccountName` synchronized from the on-premises directory. - // The property is only populated for customers who are synchronizing their on-premises directory to ocis-accounts. Returned by default. Read-only. - string on_premises_sam_account_name = 28; - - // Contains the on-premises security identifier (SID) for the group that was synchronized from on-premises to the cloud. Returned by default. Read-only. - string on_premises_security_identifier = 29; + // properties for sync // *true* if this group is synced from an on-premises directory; // *false* if this group was originally synced from an on-premises directory but is no longer synced; // null if this object has never been synced from an on-premises directory (default). // Returned by default. Read-only. Supports $filter. - bool on_premises_sync_enabled = 30; + bool on_premises_sync_enabled = 20; - // The preferred data location for the group. For more information, see OneDrive Online Multi-Geo. https://docs.microsoft.com/sharepoint/dev/solution-guidance/multigeo-introduction string preferredDataLocation = 53; - string preferred_data_location = 31; + // This property is used to associate an on-premises LDAP user to the ocis account object. + // This property must be specified when creating a new user account in the Graph if you are using a federated domain for the user’s userPrincipalName (UPN) property. + // Important: The $ and _ characters cannot be used when specifying this property. Supports $filter. + string on_premises_immutable_id = 21; - // The preferred language for the user. Should follow ISO 639-1 Code; for example "en-US". - string preferred_language = 32; + // Contains the on-premises security identifier (SID) for the group that was synchronized from on-premises to the cloud. Returned by default. Read-only. + string on_premises_security_identifier = 22; - // Email addresses for the group that direct to the same group mailbox. - // For example: ["SMTP: bob@contoso.com", "smtp: bob@sales.contoso.com"]. - // The any operator is required for filter expressions on multi-valued properties. - // Returned by default. Read-only. Not nullable. Supports $filter. - repeated string proxy_addresses = 33; + // Contains the on-premises LDAP `distinguished name` or `DN`. + // The property is only populated for customers who are synchronizing their on-premises directory to ocis-accounts. Read-only. + string on_premises_distinguished_name = 23; - // Timestamp of when the group was last renewed. - // This cannot be modified directly and is only updated via the renew service action. + // Contains the on-premises `samAccountName` synchronized from the on-premises directory. + // The property is only populated for customers who are synchronizing their on-premises directory to ocis-accounts. Returned by default. Read-only. + string on_premises_sam_account_name = 24; + + // Contains the on-premises domain FQDN, also called dnsDomainName synchronized from the on-premises directory. The property is only populated for customers who are synchronizing their on-premises directory to Azure Active Directory via Azure AD Connect. // Returned by default. Read-only. - google.protobuf.Timestamp renewed_date_time = 34; + string on_premises_domain_name = 25; - // Specifies the group behaviors that can be set for an Office 365 group during creation. This can be set only as part of creation (POST). Possible values are `AllowOnlyMembersToPost`, `HideGroupInOutlook`, `SubscribeNewGroupMembers`, `WelcomeEmailDisable`. For more information, see Set Microsoft 365 group behaviors and provisioning options. https://docs.microsoft.com/en-us/graph/group-set-options - repeated string resource_behavior_options = 35; + // Contains the on-premises netBios name synchronized from the on-premises directory. The property is only populated for customers who are synchronizing their on-premises directory to Azure Active Directory via Azure AD Connect. + // Returned by default. Read-only. + string on_premises_net_bios_name = 26; - // Specifies the group resources that are provisioned as part of Office 365 group creation, that are not normally part of default group creation. Possible value is `Team`. For more information, see Set Microsoft 365 group behaviors and provisioning options. https://docs.microsoft.com/en-us/graph/group-set-options - repeated string resource_provisioning_options = 36; + // Indicates the last time at which the group was synced with the on-premises directory. + // Returned by default. Read-only. Supports $filter. + string on_premises_last_sync_date_time = 27; - // Specifies whether the group is a security group. - // Returned by default. Supports $filter. - bool security_enabled = 37; - - // Security identifier of the group, used in Windows scenarios. - // Returned by default. - string security_identifier = 38; - - // Specifies an Office 365 group's color theme. Possible values are Teal, Purple, Green, Blue, Pink, Orange or Red. - // Returned by default. - string theme = 39; - - // Count of conversations that have been delivered one or more new posts since the signed-in user's last visit to the group. This property is the same as unseenCount. - // Returned only on $select. - //int unseenConversationsCount = 40; - - // Count of conversations that have received new posts since the signed-in user last visited the group. This property is the same as unseenConversationsCount. - // Returned only on $select. - //int unseenCount = 41; - - // Count of new posts that have been delivered to the group's conversations since the signed-in user's last visit to the group. - // Returned only on $select. - //int unseenMessagesCount = 42; - - // Specifies the visibility of an Office 365 group. Possible values are: Private, Public, or Hiddenmembership; blank values are treated as public. See group visibility options to learn more. - // Visibility can be set only when a group is created; it is not editable. - // Visibility is supported only for unified groups; it is not supported for security groups. - // Returned by default. - string visibility = 43; - - // relationships - - // Users, contacts, and groups that are members of this group. HTTP Methods: GET (supported for all groups), POST (supported for security groups and mail-enabled security groups), DELETE (supported only for security groups) Read-only. Nullable. - // TODO accounts (users) only for now, we can add groups with the dedicated message using oneof construct later - repeated Account members = 100; - -} - -message AssignedLabel { - // The unique identifier of the label. - string label_id = 1; - // The display name of the label. Read-only. - string display_name = 2; -} - -message AssignedLicense { - string sku_id = 1; - repeated string disabled_plans = 2; -} - -message AssignedPlan { - // The date and time at which the plan was assigned; for example: 2013-01-02T19:32:30Z. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z' - google.protobuf.Timestamp assigned_date_time = 1; - // For example, “Enabled”. - string capabilityStatus = 2; - // The name of the service; for example, “Exchange”. - string service = 3; - // A GUID that identifies the service plan. - string servicePlanId = 4; + // Errors when using synchronization during provisioning. + repeated OnPremisesProvisioningError on_premises_provisioning_errors = 28; } message OnPremisesProvisioningError { diff --git a/pkg/service/v0/service.go b/pkg/service/v0/service.go index 399aec1dd..5d868566f 100644 --- a/pkg/service/v0/service.go +++ b/pkg/service/v0/service.go @@ -160,7 +160,6 @@ func (s Service) ListAccounts(ctx context.Context, in *proto.ListAccountsRequest res.Accounts = append(res.Accounts, &proto.Account{ Id: sr.Entries[i].GetAttributeValue(s.Config.LDAP.Schema.AccountID), // TODO identities - // TODO Username is in the identities ... or in onpremisesamaccountname or in preferredname ... Username: sr.Entries[i].GetAttributeValue(s.Config.LDAP.Schema.Username), DisplayName: sr.Entries[i].GetAttributeValue(s.Config.LDAP.Schema.DisplayName), Mail: sr.Entries[i].GetAttributeValue(s.Config.LDAP.Schema.Mail), @@ -204,7 +203,6 @@ func (s Service) GetAccount(c context.Context, req *proto.GetAccountRequest, res case 1: res.Id = sr.Entries[0].GetAttributeValue(s.Config.LDAP.Schema.AccountID) // TODO identities? - // TODO Username is in the identities ... or in onpremisesamaccountname or in preferredname ... res.Username = sr.Entries[0].GetAttributeValue(s.Config.LDAP.Schema.Username) res.DisplayName = sr.Entries[0].GetAttributeValue(s.Config.LDAP.Schema.DisplayName) res.Mail = sr.Entries[0].GetAttributeValue(s.Config.LDAP.Schema.Mail)