diff --git a/internal/api/grpc/org/v2beta/helper.go b/internal/api/grpc/org/v2beta/helper.go index b0408482a6..d3c25709e3 100644 --- a/internal/api/grpc/org/v2beta/helper.go +++ b/internal/api/grpc/org/v2beta/helper.go @@ -74,9 +74,9 @@ func createdOrganizationToPb(createdOrg *command.CreatedOrg) (_ *org.CreateOrgan } } return &org.CreateOrganizationResponse{ - Details: v2beta_object.DomainToDetailsPb(createdOrg.ObjectDetails), - OrganizationId: createdOrg.ObjectDetails.ResourceOwner, - CreatedAdmins: admins, + Details: v2beta_object.DomainToDetailsPb(createdOrg.ObjectDetails), + Id: createdOrg.ObjectDetails.ResourceOwner, + CreatedAdmins: admins, }, nil } @@ -202,7 +202,7 @@ func DomainQueryToModel(searchQuery *v2beta_org.DomainSearchQuery) (query.Search func RemoveOrgDomainRequestToDomain(ctx context.Context, req *v2beta_org.DeleteOrganizationDomainRequest) *domain.OrgDomain { return &domain.OrgDomain{ ObjectRoot: models.ObjectRoot{ - AggregateID: req.OrganizationId, + AggregateID: req.Id, }, Domain: req.Domain, } @@ -211,7 +211,7 @@ func RemoveOrgDomainRequestToDomain(ctx context.Context, req *v2beta_org.DeleteO func GenerateOrgDomainValidationRequestToDomain(ctx context.Context, req *v2beta_org.GenerateOrganizationDomainValidationRequest) *domain.OrgDomain { return &domain.OrgDomain{ ObjectRoot: models.ObjectRoot{ - AggregateID: req.OrganizationId, + AggregateID: req.Id, }, Domain: req.Domain, ValidationType: v2beta_object.DomainValidationTypeToDomain(req.Type), @@ -221,7 +221,7 @@ func GenerateOrgDomainValidationRequestToDomain(ctx context.Context, req *v2beta func ValidateOrgDomainRequestToDomain(ctx context.Context, req *v2beta_org.VerifyOrganizationDomainRequest) *domain.OrgDomain { return &domain.OrgDomain{ ObjectRoot: models.ObjectRoot{ - AggregateID: req.OrganizationId, + AggregateID: req.Id, }, Domain: req.Domain, } diff --git a/internal/api/grpc/org/v2beta/integration_test/org_test.go b/internal/api/grpc/org/v2beta/integration_test/org_test.go index 464abad776..19d5f74955 100644 --- a/internal/api/grpc/org/v2beta/integration_test/org_test.go +++ b/internal/api/grpc/org/v2beta/integration_test/org_test.go @@ -112,7 +112,7 @@ func TestServer_CreateOrganization(t *testing.T) { }, }, want: &v2beta_org.CreateOrganizationResponse{ - OrganizationId: integration.NotEmpty, + Id: integration.NotEmpty, CreatedAdmins: []*v2beta_org.CreateOrganizationResponse_CreatedAdmin{ { UserId: integration.NotEmpty, @@ -183,7 +183,7 @@ func TestServer_CreateOrganization(t *testing.T) { assert.NotEmpty(t, got.GetDetails().GetResourceOwner()) // organization id must be the same as the resourceOwner - assert.Equal(t, got.GetDetails().GetResourceOwner(), got.GetOrganizationId()) + assert.Equal(t, got.GetDetails().GetResourceOwner(), got.GetId()) // check the admins require.Len(t, got.GetCreatedAdmins(), len(tt.want.GetCreatedAdmins())) @@ -200,7 +200,7 @@ func TestServer_UpdateOrganization(t *testing.T) { if err != nil { assert.Fail(t, "unable to create org") } - orgId := orgs[0].OrganizationId + orgId := orgs[0].Id orgName := orgsName[0] tests := []struct { @@ -226,6 +226,15 @@ func TestServer_UpdateOrganization(t *testing.T) { Name: orgName, }, }, + { + name: "update org with non existanet org id", + ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner), + req: &v2beta_org.UpdateOrganizationRequest{ + Id: "non existant org id", + // Name: "", + }, + wantErr: true, + }, { name: "update org with no id", ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner), @@ -260,7 +269,7 @@ func TestServer_GetOrganizationByID(t *testing.T) { if err != nil { assert.Fail(t, "unable to create org") } - orgId := orgs[0].OrganizationId + orgId := orgs[0].Id orgName := orgsName[0] tests := []struct { @@ -322,15 +331,15 @@ func TestServer_ListOrganization(t *testing.T) { req: &v2beta_org.ListOrganizationsRequest{}, want: []*v2beta_org.Organization{ { - Id: orgs[0].OrganizationId, + Id: orgs[0].Id, Name: orgsName[0], }, { - Id: orgs[1].OrganizationId, + Id: orgs[1].Id, Name: orgsName[1], }, { - Id: orgs[2].OrganizationId, + Id: orgs[2].Id, Name: orgsName[2], }, }, @@ -388,7 +397,7 @@ func TestServer_DeleteOrganization(t *testing.T) { if err != nil { assert.Fail(t, "unable to create org") } - return orgs[0].OrganizationId + return orgs[0].Id }, req: &v2beta_org.DeleteOrganizationRequest{}, }, @@ -451,7 +460,7 @@ func TestServer_DeactivateReactivateOrganization(t *testing.T) { if err != nil { assert.Fail(t, "unable to create orgs") } - orgId := orgs[0].OrganizationId + orgId := orgs[0].Id ctx := Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner) // 2. check inital state of organization @@ -561,14 +570,14 @@ func TestServer_AddOListDeleterganizationDomain(t *testing.T) { if err != nil { assert.Fail(t, "unable to create org") } - orgId := orgs[0].OrganizationId + orgId := orgs[0].Id ctx := Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner) domain := "www.domain.com" // 2. add domain addOrgDomainRes, err := Client.AddOrganizationDomain(ctx, &v2beta_org.AddOrganizationDomainRequest{ - OrganizationId: orgId, - Domain: domain, + Id: orgId, + Domain: domain, }) require.NoError(t, err) // check details @@ -580,7 +589,7 @@ func TestServer_AddOListDeleterganizationDomain(t *testing.T) { // 2. check domain is added queryRes, err := Client.ListOrganizationDomains(CTX, &v2beta_org.ListOrganizationDomainsRequest{ - OrganizationId: orgId, + Id: orgId, }) require.NoError(t, err) found := false @@ -593,8 +602,8 @@ func TestServer_AddOListDeleterganizationDomain(t *testing.T) { // 3. readd domain _, err = Client.AddOrganizationDomain(ctx, &v2beta_org.AddOrganizationDomainRequest{ - OrganizationId: orgId, - Domain: domain, + Id: orgId, + Domain: domain, }) // TODO remove error for adding already existing domain // require.NoError(t, err) @@ -608,7 +617,7 @@ func TestServer_AddOListDeleterganizationDomain(t *testing.T) { // 4. check domain is added queryRes, err = Client.ListOrganizationDomains(CTX, &v2beta_org.ListOrganizationDomainsRequest{ - OrganizationId: orgId, + Id: orgId, }) require.NoError(t, err) found = false @@ -621,8 +630,8 @@ func TestServer_AddOListDeleterganizationDomain(t *testing.T) { // 5. delete organisation domain deleteOrgDomainRes, err := Client.DeleteOrganizationDomain(ctx, &v2beta_org.DeleteOrganizationDomainRequest{ - OrganizationId: orgId, - Domain: domain, + Id: orgId, + Domain: domain, }) require.NoError(t, err) // check details @@ -634,7 +643,7 @@ func TestServer_AddOListDeleterganizationDomain(t *testing.T) { // 6. check organization domain deleted queryRes, err = Client.ListOrganizationDomains(CTX, &v2beta_org.ListOrganizationDomainsRequest{ - OrganizationId: orgId, + Id: orgId, }) require.NoError(t, err) found = false @@ -647,8 +656,8 @@ func TestServer_AddOListDeleterganizationDomain(t *testing.T) { // 7. redelete organisation domain _, err = Client.DeleteOrganizationDomain(ctx, &v2beta_org.DeleteOrganizationDomainRequest{ - OrganizationId: orgId, - Domain: domain, + Id: orgId, + Domain: domain, }) // TODO remove error for deleting org domain already deleted // require.NoError(t, err) @@ -662,7 +671,7 @@ func TestServer_AddOListDeleterganizationDomain(t *testing.T) { // 8. check organization domain deleted queryRes, err = Client.ListOrganizationDomains(CTX, &v2beta_org.ListOrganizationDomainsRequest{ - OrganizationId: orgId, + Id: orgId, }) require.NoError(t, err) found = false @@ -679,7 +688,7 @@ func TestServer_ValidateOrganizationDomain(t *testing.T) { if err != nil { assert.Fail(t, "unable to create org") } - orgId := orgs[0].OrganizationId + orgId := orgs[0].Id _, err = AdminClient.UpdateDomainPolicy(CTX, &admin.UpdateDomainPolicyRequest{ ValidateOrgDomains: true, @@ -688,8 +697,8 @@ func TestServer_ValidateOrganizationDomain(t *testing.T) { domain := "www.domainnn.com" _, err = Client.AddOrganizationDomain(CTX, &v2beta_org.AddOrganizationDomainRequest{ - OrganizationId: orgId, - Domain: domain, + Id: orgId, + Domain: domain, }) require.NoError(t, err) @@ -703,29 +712,51 @@ func TestServer_ValidateOrganizationDomain(t *testing.T) { name: "validate org http happy path", ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner), req: &v2beta_org.GenerateOrganizationDomainValidationRequest{ - OrganizationId: orgId, - Domain: domain, - Type: org.DomainValidationType_DOMAIN_VALIDATION_TYPE_HTTP, + Id: orgId, + Domain: domain, + Type: org.DomainValidationType_DOMAIN_VALIDATION_TYPE_HTTP, }, }, { name: "validate org http non existnetn org id", ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner), req: &v2beta_org.GenerateOrganizationDomainValidationRequest{ - OrganizationId: "non existent org id", - Domain: domain, - Type: org.DomainValidationType_DOMAIN_VALIDATION_TYPE_HTTP, + Id: "non existent org id", + Domain: domain, + Type: org.DomainValidationType_DOMAIN_VALIDATION_TYPE_HTTP, }, // BUG: this should be 'organization does not exist' err: errors.New("Domain doesn't exist on organization"), }, { - name: "validate org http non existnetn domain", + name: "validate org dns happy path", ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner), req: &v2beta_org.GenerateOrganizationDomainValidationRequest{ - OrganizationId: orgId, - Domain: "non existent domain", - Type: org.DomainValidationType_DOMAIN_VALIDATION_TYPE_HTTP, + Id: orgId, + Domain: domain, + Type: org.DomainValidationType_DOMAIN_VALIDATION_TYPE_DNS, + }, + }, + // TODO: "validate org dns non existnetn org id" has an consistent error message, need to investigate this + { + name: "validate org dns non existnetn org id", + ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner), + req: &v2beta_org.GenerateOrganizationDomainValidationRequest{ + Id: "non existent org id", + Domain: domain, + Type: org.DomainValidationType_DOMAIN_VALIDATION_TYPE_DNS, + }, + // BUG: this should be 'organization does not exist' + err: errors.New("Domain doesn't exist on organization"), + }, + // TODO: "validate org non existnetn domain" has an consistent error message, need to investigate this + { + name: "validate org non existnetn domain", + ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner), + req: &v2beta_org.GenerateOrganizationDomainValidationRequest{ + Id: orgId, + Domain: "non existent domain", + Type: org.DomainValidationType_DOMAIN_VALIDATION_TYPE_HTTP, }, err: errors.New("Domain doesn't exist on organization"), }, @@ -750,7 +781,7 @@ func TestServer_SetOrganizationMetadata(t *testing.T) { if err != nil { assert.Fail(t, "unable to create org") } - orgId := orgs[0].OrganizationId + orgId := orgs[0].Id tests := []struct { name string @@ -869,7 +900,7 @@ func TestServer_ListOrganizationMetadata(t *testing.T) { if err != nil { assert.Fail(t, "unable to create org") } - orgId := orgs[0].OrganizationId + orgId := orgs[0].Id tests := []struct { name string @@ -988,14 +1019,18 @@ func TestServer_DeleteOrganizationMetadata(t *testing.T) { if err != nil { assert.Fail(t, "unable to create org") } - orgId := orgs[0].OrganizationId + orgId := orgs[0].Id tests := []struct { - name string - ctx context.Context - setupFunc func() - orgId string - keyValuPars []struct { + name string + ctx context.Context + setupFunc func() + orgId string + metadataToDelete []struct { + key string + value string + } + metadataToRemain []struct { key string value string } @@ -1017,13 +1052,132 @@ func TestServer_DeleteOrganizationMetadata(t *testing.T) { require.NoError(t, err) }, orgId: orgId, - keyValuPars: []struct{ key, value string }{ + metadataToDelete: []struct{ key, value string }{ { key: "key1", value: "value1", }, }, }, + { + name: "delete multiple org metadata happy path", + ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner), + setupFunc: func() { + _, err := Client.SetOrganizationMetadata(CTX, &v2beta_org.SetOrganizationMetadataRequest{ + Id: orgId, + Metadata: []*v2beta_org.Metadata{ + { + Key: "key2", + Value: []byte("value2"), + }, + { + Key: "key3", + Value: []byte("value3"), + }, + }, + }) + require.NoError(t, err) + }, + orgId: orgId, + metadataToDelete: []struct{ key, value string }{ + { + key: "key2", + value: "value2", + }, + { + key: "key3", + value: "value3", + }, + }, + }, + { + name: "delete some org metadata but not all", + ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner), + setupFunc: func() { + _, err := Client.SetOrganizationMetadata(CTX, &v2beta_org.SetOrganizationMetadataRequest{ + Id: orgId, + Metadata: []*v2beta_org.Metadata{ + { + Key: "key4", + Value: []byte("value4"), + }, + // key5 will not be deleted + { + Key: "key5", + Value: []byte("value5"), + }, + { + Key: "key6", + Value: []byte("value6"), + }, + }, + }) + require.NoError(t, err) + }, + orgId: orgId, + metadataToDelete: []struct{ key, value string }{ + { + key: "key4", + value: "value4", + }, + { + key: "key6", + value: "value6", + }, + }, + metadataToRemain: []struct{ key, value string }{ + { + key: "key5", + value: "value5", + }, + }, + }, + { + name: "delete org metadata that does not exist", + ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner), + setupFunc: func() { + _, err := Client.SetOrganizationMetadata(CTX, &v2beta_org.SetOrganizationMetadataRequest{ + Id: orgId, + Metadata: []*v2beta_org.Metadata{ + { + Key: "key88", + Value: []byte("value74"), + }, + { + Key: "key5888", + Value: []byte("value8885"), + }, + }, + }) + require.NoError(t, err) + }, + orgId: orgId, + // TODO: this error message needs to be either removed or changed + err: errors.New("Metadata list is empty"), + }, + { + name: "delete org metadata for org that does not exist", + ctx: Instance.WithAuthorization(context.Background(), integration.UserTypeIAMOwner), + setupFunc: func() { + _, err := Client.SetOrganizationMetadata(CTX, &v2beta_org.SetOrganizationMetadataRequest{ + Id: orgId, + Metadata: []*v2beta_org.Metadata{ + { + Key: "key88", + Value: []byte("value74"), + }, + { + Key: "key5888", + Value: []byte("value8885"), + }, + }, + }) + require.NoError(t, err) + }, + orgId: "non existant org id", + // TODO: this error message needs to be either removed or changed + err: errors.New("Metadata list is empty"), + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { @@ -1037,7 +1191,7 @@ func TestServer_DeleteOrganizationMetadata(t *testing.T) { }) require.NoError(t, err) foundMetadataCount := 0 - for _, kv := range tt.keyValuPars { + for _, kv := range tt.metadataToDelete { for _, res := range listOrgMetadataRes.Result { if res.Key == kv.key && string(res.Value) == kv.value { @@ -1045,11 +1199,17 @@ func TestServer_DeleteOrganizationMetadata(t *testing.T) { } } } - require.Equal(t, len(tt.keyValuPars), foundMetadataCount) + require.Equal(t, len(tt.metadataToDelete), foundMetadataCount) + + keys := make([]string, len(tt.metadataToDelete)) + for i, kvp := range tt.metadataToDelete { + keys[i] = kvp.key + } // run delete _, err = Client.DeleteOrganizationMetadata(tt.ctx, &v2beta_org.DeleteOrganizationMetadataRequest{ - Id: tt.orgId, + Id: tt.orgId, + Keys: keys, }) if tt.err != nil { require.Contains(t, err.Error(), tt.err.Error()) @@ -1063,7 +1223,7 @@ func TestServer_DeleteOrganizationMetadata(t *testing.T) { }) require.NoError(t, err) foundMetadataCount = 0 - for _, kv := range tt.keyValuPars { + for _, kv := range tt.metadataToDelete { for _, res := range listOrgMetadataRes.Result { if res.Key == kv.key && string(res.Value) == kv.value { @@ -1071,6 +1231,23 @@ func TestServer_DeleteOrganizationMetadata(t *testing.T) { } } } + require.Equal(t, foundMetadataCount, 0) + + // check metadata that should not be delted was not deleted + listOrgMetadataRes, err = Client.ListOrganizationMetadata(tt.ctx, &v2beta_org.ListOrganizationMetadataRequest{ + Id: tt.orgId, + }) + require.NoError(t, err) + foundMetadataCount = 0 + for _, kv := range tt.metadataToRemain { + for _, res := range listOrgMetadataRes.Result { + if res.Key == kv.key && + string(res.Value) == kv.value { + foundMetadataCount += 1 + } + } + } + require.Equal(t, len(tt.metadataToRemain), foundMetadataCount) }) } } diff --git a/internal/api/grpc/org/v2beta/org.go b/internal/api/grpc/org/v2beta/org.go index 7aa13e3c85..784ed31c88 100644 --- a/internal/api/grpc/org/v2beta/org.go +++ b/internal/api/grpc/org/v2beta/org.go @@ -127,11 +127,11 @@ func (s *Server) ReactivateOrganization(ctx context.Context, request *org.Reacti } func (s *Server) AddOrganizationDomain(ctx context.Context, request *org.AddOrganizationDomainRequest) (*org.AddOrganizationDomainResponse, error) { - userIDs, err := s.getClaimedUserIDsOfOrgDomain(ctx, request.Domain, request.OrganizationId) + userIDs, err := s.getClaimedUserIDsOfOrgDomain(ctx, request.Domain, request.Id) if err != nil { return nil, err } - details, err := s.command.AddOrgDomain(ctx, request.OrganizationId, request.Domain, userIDs) + details, err := s.command.AddOrgDomain(ctx, request.Id, request.Domain, userIDs) if err != nil { return nil, err } @@ -145,7 +145,7 @@ func (s *Server) ListOrganizationDomains(ctx context.Context, req *org.ListOrgan if err != nil { return nil, err } - orgIDQuery, err := query.NewOrgDomainOrgIDSearchQuery(req.OrganizationId) + orgIDQuery, err := query.NewOrgDomainOrgIDSearchQuery(req.Id) if err != nil { return nil, err } @@ -183,7 +183,7 @@ func (s *Server) GenerateOrganizationDomainValidation(ctx context.Context, req * } func (s *Server) VerifyOrganizationDomain(ctx context.Context, request *org.VerifyOrganizationDomainRequest) (*org.VerifyOrganizationDomainResponse, error) { - userIDs, err := s.getClaimedUserIDsOfOrgDomain(ctx, request.Domain, request.OrganizationId) + userIDs, err := s.getClaimedUserIDsOfOrgDomain(ctx, request.Domain, request.Id) if err != nil { return nil, err } diff --git a/internal/api/grpc/org/v2beta/org_test.go b/internal/api/grpc/org/v2beta/org_test.go index 0a3046c4b6..6bf0e7bf05 100644 --- a/internal/api/grpc/org/v2beta/org_test.go +++ b/internal/api/grpc/org/v2beta/org_test.go @@ -151,7 +151,7 @@ func Test_createdOrganizationToPb(t *testing.T) { ChangeDate: timestamppb.New(now), ResourceOwner: "orgID", }, - OrganizationId: "orgID", + Id: "orgID", CreatedAdmins: []*org.CreateOrganizationResponse_CreatedAdmin{ { UserId: "id", diff --git a/proto/zitadel/org/v2beta/org_service.proto b/proto/zitadel/org/v2beta/org_service.proto index c36362d04f..03bea3361d 100644 --- a/proto/zitadel/org/v2beta/org_service.proto +++ b/proto/zitadel/org/v2beta/org_service.proto @@ -598,7 +598,16 @@ message CreateOrganizationResponse{ optional string phone_code = 3; } zitadel.object.v2beta.Details details = 1; - string organization_id = 2; + string id = 2 [ + (validate.rules).string = {min_len: 1, max_len: 200}, + (google.api.field_behavior) = REQUIRED, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + min_length: 1; + max_length: 200; + example: "\"69629012906488334\""; + description: "Organization ID of the newly created organization." + } + ]; repeated CreatedAdmin created_admins = 3; } @@ -722,7 +731,16 @@ message ReactivateOrganizationResponse { } message AddOrganizationDomainRequest { - string organization_id = 1; + string id = 1 [ + (validate.rules).string = {min_len: 1, max_len: 200}, + (google.api.field_behavior) = REQUIRED, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + min_length: 1; + max_length: 200; + example: "\"69629012906488334\""; + description: "Organization ID of the organization you want to add a domain to." + } + ]; string domain = 2 [ (validate.rules).string = {min_len: 1, max_len: 200}, (google.api.field_behavior) = REQUIRED, @@ -739,7 +757,16 @@ message AddOrganizationDomainResponse { } message ListOrganizationDomainsRequest { - string organization_id = 1; + string id = 1 [ + (validate.rules).string = {min_len: 1, max_len: 200}, + (google.api.field_behavior) = REQUIRED, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + min_length: 1; + max_length: 200; + example: "\"69629012906488334\""; + description: "Organization ID of the organization you want the domains of." + } + ]; //list limitations and ordering zitadel.object.v2beta.ListQuery query = 2; //criteria the client is looking for @@ -752,17 +779,25 @@ message ListOrganizationDomainsResponse { } message DeleteOrganizationDomainRequest { - // TODO maybe change organization_id to just Id - string organization_id = 1; - string domain = 2 [ - (validate.rules).string = {min_len: 1, max_len: 200}, - (google.api.field_behavior) = REQUIRED, - (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { - min_length: 1; - max_length: 200; - example: "\"testdomain.com\""; - } - ]; + string id = 1 [ + (validate.rules).string = {min_len: 1, max_len: 200}, + (google.api.field_behavior) = REQUIRED, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + min_length: 1; + max_length: 200; + example: "\"69629012906488334\""; + description: "Organization ID of the organization you want to delete." + } + ]; + string domain = 2 [ + (validate.rules).string = {min_len: 1, max_len: 200}, + (google.api.field_behavior) = REQUIRED, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + min_length: 1; + max_length: 200; + example: "\"testdomain.com\""; + } + ]; } message DeleteOrganizationDomainResponse { @@ -770,7 +805,16 @@ message DeleteOrganizationDomainResponse { } message GenerateOrganizationDomainValidationRequest { - string organization_id = 1; + string id = 1 [ + (validate.rules).string = {min_len: 1, max_len: 200}, + (google.api.field_behavior) = REQUIRED, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + min_length: 1; + max_length: 200; + example: "\"69629012906488334\""; + description: "Organization ID of the organization you want to generate a validation request for." + } + ]; string domain = 2 [ (validate.rules).string = {min_len: 1, max_len: 200}, (google.api.field_behavior) = REQUIRED, @@ -797,7 +841,16 @@ message GenerateOrganizationDomainValidationResponse { } message VerifyOrganizationDomainRequest { - string organization_id = 1; + string id = 1 [ + (validate.rules).string = {min_len: 1, max_len: 200}, + (google.api.field_behavior) = REQUIRED, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + min_length: 1; + max_length: 200; + example: "\"69629012906488334\""; + description: "Organization ID of the organization you want to veryify the domain on." + } + ]; string domain = 2 [ (validate.rules).string = {min_len: 1, max_len: 200}, (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {