code.gitea.io/gitea@v1.19.3/modules/structs/org.go (about) 1 // Copyright 2015 The Gogs Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package structs 5 6 // Organization represents an organization 7 type Organization struct { 8 ID int64 `json:"id"` 9 Name string `json:"name"` 10 FullName string `json:"full_name"` 11 AvatarURL string `json:"avatar_url"` 12 Description string `json:"description"` 13 Website string `json:"website"` 14 Location string `json:"location"` 15 Visibility string `json:"visibility"` 16 RepoAdminChangeTeamAccess bool `json:"repo_admin_change_team_access"` 17 // deprecated 18 UserName string `json:"username"` 19 } 20 21 // OrganizationPermissions list different users permissions on an organization 22 type OrganizationPermissions struct { 23 IsOwner bool `json:"is_owner"` 24 IsAdmin bool `json:"is_admin"` 25 CanWrite bool `json:"can_write"` 26 CanRead bool `json:"can_read"` 27 CanCreateRepository bool `json:"can_create_repository"` 28 } 29 30 // CreateOrgOption options for creating an organization 31 type CreateOrgOption struct { 32 // required: true 33 UserName string `json:"username" binding:"Required;Username;MaxSize(40)"` 34 FullName string `json:"full_name" binding:"MaxSize(100)"` 35 Description string `json:"description" binding:"MaxSize(255)"` 36 Website string `json:"website" binding:"ValidUrl;MaxSize(255)"` 37 Location string `json:"location" binding:"MaxSize(50)"` 38 // possible values are `public` (default), `limited` or `private` 39 // enum: public,limited,private 40 Visibility string `json:"visibility" binding:"In(,public,limited,private)"` 41 RepoAdminChangeTeamAccess bool `json:"repo_admin_change_team_access"` 42 } 43 44 // TODO: make EditOrgOption fields optional after https://gitea.com/go-chi/binding/pulls/5 got merged 45 46 // EditOrgOption options for editing an organization 47 type EditOrgOption struct { 48 FullName string `json:"full_name" binding:"MaxSize(100)"` 49 Description string `json:"description" binding:"MaxSize(255)"` 50 Website string `json:"website" binding:"ValidUrl;MaxSize(255)"` 51 Location string `json:"location" binding:"MaxSize(50)"` 52 // possible values are `public`, `limited` or `private` 53 // enum: public,limited,private 54 Visibility string `json:"visibility" binding:"In(,public,limited,private)"` 55 RepoAdminChangeTeamAccess *bool `json:"repo_admin_change_team_access"` 56 }