| 
									
										
										
										
											2021-07-05 13:23:03 +02:00
										 |  |  | /* | 
					
						
							|  |  |  |    GoToSocial | 
					
						
							| 
									
										
										
										
											2021-12-20 18:42:19 +01:00
										 |  |  |    Copyright (C) 2021-2022 GoToSocial Authors admin@gotosocial.org | 
					
						
							| 
									
										
										
										
											2021-07-05 13:23:03 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |    This program is free software: you can redistribute it and/or modify | 
					
						
							|  |  |  |    it under the terms of the GNU Affero General Public License as published by | 
					
						
							|  |  |  |    the Free Software Foundation, either version 3 of the License, or | 
					
						
							|  |  |  |    (at your option) any later version. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    This program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
					
						
							|  |  |  |    GNU Affero General Public License for more details. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    You should have received a copy of the GNU Affero General Public License | 
					
						
							|  |  |  |    along with this program.  If not, see <http://www.gnu.org/licenses/>. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | package model | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-06 13:29:11 +02:00
										 |  |  | import "mime/multipart" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-05 13:23:03 +02:00
										 |  |  | // DomainBlock represents a block on one domain | 
					
						
							| 
									
										
										
										
											2021-07-31 17:49:59 +02:00
										 |  |  | // | 
					
						
							|  |  |  | // swagger:model domainBlock | 
					
						
							| 
									
										
										
										
											2021-07-05 13:23:03 +02:00
										 |  |  | type DomainBlock struct { | 
					
						
							| 
									
										
										
										
											2021-07-31 17:49:59 +02:00
										 |  |  | 	// The ID of the domain block. | 
					
						
							|  |  |  | 	// example: 01FBW21XJA09XYX51KV5JVBW0F | 
					
						
							|  |  |  | 	// readonly: true | 
					
						
							|  |  |  | 	ID string `json:"id,omitempty"` | 
					
						
							|  |  |  | 	// The hostname of the blocked domain. | 
					
						
							|  |  |  | 	// example: example.org | 
					
						
							|  |  |  | 	Domain string `form:"domain" json:"domain" validation:"required"` | 
					
						
							|  |  |  | 	// Obfuscate the domain name when serving this domain block publicly. | 
					
						
							|  |  |  | 	// A useful anti-harassment tool. | 
					
						
							|  |  |  | 	// example: false | 
					
						
							|  |  |  | 	Obfuscate bool `json:"obfuscate,omitempty"` | 
					
						
							|  |  |  | 	// Private comment for this block, visible to our instance admins only. | 
					
						
							|  |  |  | 	// example: they are poopoo | 
					
						
							| 
									
										
										
										
											2021-07-05 13:23:03 +02:00
										 |  |  | 	PrivateComment string `json:"private_comment,omitempty"` | 
					
						
							| 
									
										
										
										
											2021-07-31 17:49:59 +02:00
										 |  |  | 	// Public comment for this block, visible if domain blocks are served publicly. | 
					
						
							|  |  |  | 	// example: they smell | 
					
						
							|  |  |  | 	PublicComment string `form:"public_comment" json:"public_comment,omitempty"` | 
					
						
							|  |  |  | 	// The ID of the subscription that created/caused this domain block. | 
					
						
							|  |  |  | 	// example: 01FBW25TF5J67JW3HFHZCSD23K | 
					
						
							| 
									
										
										
										
											2021-07-05 13:23:03 +02:00
										 |  |  | 	SubscriptionID string `json:"subscription_id,omitempty"` | 
					
						
							| 
									
										
										
										
											2021-07-31 17:49:59 +02:00
										 |  |  | 	// ID of the account that created this domain block. | 
					
						
							|  |  |  | 	// example: 01FBW2758ZB6PBR200YPDDJK4C | 
					
						
							|  |  |  | 	CreatedBy string `json:"created_by,omitempty"` | 
					
						
							|  |  |  | 	// Time at which this block was created (ISO 8601 Datetime). | 
					
						
							|  |  |  | 	// example: 2021-07-30T09:20:25+00:00 | 
					
						
							|  |  |  | 	CreatedAt string `json:"created_at,omitempty"` | 
					
						
							| 
									
										
										
										
											2021-07-05 13:23:03 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // DomainBlockCreateRequest is the form submitted as a POST to /api/v1/admin/domain_blocks to create a new block. | 
					
						
							| 
									
										
										
										
											2021-07-31 17:49:59 +02:00
										 |  |  | // | 
					
						
							|  |  |  | // swagger:model domainBlockCreateRequest | 
					
						
							| 
									
										
										
										
											2021-07-05 13:23:03 +02:00
										 |  |  | type DomainBlockCreateRequest struct { | 
					
						
							| 
									
										
										
										
											2021-07-06 13:29:11 +02:00
										 |  |  | 	// A list of domains to block. Only used if import=true is specified. | 
					
						
							|  |  |  | 	Domains *multipart.FileHeader `form:"domains" json:"domains" xml:"domains"` | 
					
						
							| 
									
										
										
										
											2021-07-05 13:23:03 +02:00
										 |  |  | 	// hostname/domain to block | 
					
						
							| 
									
										
										
										
											2021-07-06 13:29:11 +02:00
										 |  |  | 	Domain string `form:"domain" json:"domain" xml:"domain"` | 
					
						
							| 
									
										
										
										
											2021-07-05 13:23:03 +02:00
										 |  |  | 	// whether the domain should be obfuscated when being displayed publicly | 
					
						
							|  |  |  | 	Obfuscate bool `form:"obfuscate" json:"obfuscate" xml:"obfuscate"` | 
					
						
							|  |  |  | 	// private comment for other admins on why the domain was blocked | 
					
						
							|  |  |  | 	PrivateComment string `form:"private_comment" json:"private_comment" xml:"private_comment"` | 
					
						
							|  |  |  | 	// public comment on the reason for the domain block | 
					
						
							|  |  |  | 	PublicComment string `form:"public_comment" json:"public_comment" xml:"public_comment"` | 
					
						
							|  |  |  | } |