github.com/fastly/cli@v1.7.2-0.20240304164155-9d0f1d77c3bf/pkg/api/interface.go (about)

     1  package api
     2  
     3  import (
     4  	"crypto/ed25519"
     5  	"net/http"
     6  
     7  	"github.com/fastly/go-fastly/v9/fastly"
     8  )
     9  
    10  // HTTPClient models a concrete http.Client. It's a consumer contract for some
    11  // commands which need to make direct HTTP requests to the API, because the
    12  // official Fastly client library lacks certain endpoints, so we call the API
    13  // directly.
    14  type HTTPClient interface {
    15  	Do(*http.Request) (*http.Response, error)
    16  }
    17  
    18  // Interface models the methods of the Fastly API client that we use.
    19  // It exists to allow for easier testing, in combination with Mock.
    20  type Interface interface {
    21  	AllIPs() (v4, v6 fastly.IPAddrs, err error)
    22  	AllDatacenters() (datacenters []fastly.Datacenter, err error)
    23  
    24  	CreateService(*fastly.CreateServiceInput) (*fastly.Service, error)
    25  	GetServices(*fastly.GetServicesInput) *fastly.ListPaginator[fastly.Service]
    26  	ListServices(*fastly.ListServicesInput) ([]*fastly.Service, error)
    27  	GetService(*fastly.GetServiceInput) (*fastly.Service, error)
    28  	GetServiceDetails(*fastly.GetServiceInput) (*fastly.ServiceDetail, error)
    29  	UpdateService(*fastly.UpdateServiceInput) (*fastly.Service, error)
    30  	DeleteService(*fastly.DeleteServiceInput) error
    31  	SearchService(*fastly.SearchServiceInput) (*fastly.Service, error)
    32  
    33  	CloneVersion(*fastly.CloneVersionInput) (*fastly.Version, error)
    34  	ListVersions(*fastly.ListVersionsInput) ([]*fastly.Version, error)
    35  	GetVersion(*fastly.GetVersionInput) (*fastly.Version, error)
    36  	UpdateVersion(*fastly.UpdateVersionInput) (*fastly.Version, error)
    37  	ActivateVersion(*fastly.ActivateVersionInput) (*fastly.Version, error)
    38  	DeactivateVersion(*fastly.DeactivateVersionInput) (*fastly.Version, error)
    39  	LockVersion(*fastly.LockVersionInput) (*fastly.Version, error)
    40  	LatestVersion(*fastly.LatestVersionInput) (*fastly.Version, error)
    41  
    42  	CreateDomain(*fastly.CreateDomainInput) (*fastly.Domain, error)
    43  	ListDomains(*fastly.ListDomainsInput) ([]*fastly.Domain, error)
    44  	GetDomain(*fastly.GetDomainInput) (*fastly.Domain, error)
    45  	UpdateDomain(*fastly.UpdateDomainInput) (*fastly.Domain, error)
    46  	DeleteDomain(*fastly.DeleteDomainInput) error
    47  	ValidateDomain(i *fastly.ValidateDomainInput) (*fastly.DomainValidationResult, error)
    48  	ValidateAllDomains(i *fastly.ValidateAllDomainsInput) (results []*fastly.DomainValidationResult, err error)
    49  
    50  	CreateBackend(*fastly.CreateBackendInput) (*fastly.Backend, error)
    51  	ListBackends(*fastly.ListBackendsInput) ([]*fastly.Backend, error)
    52  	GetBackend(*fastly.GetBackendInput) (*fastly.Backend, error)
    53  	UpdateBackend(*fastly.UpdateBackendInput) (*fastly.Backend, error)
    54  	DeleteBackend(*fastly.DeleteBackendInput) error
    55  
    56  	CreateHealthCheck(*fastly.CreateHealthCheckInput) (*fastly.HealthCheck, error)
    57  	ListHealthChecks(*fastly.ListHealthChecksInput) ([]*fastly.HealthCheck, error)
    58  	GetHealthCheck(*fastly.GetHealthCheckInput) (*fastly.HealthCheck, error)
    59  	UpdateHealthCheck(*fastly.UpdateHealthCheckInput) (*fastly.HealthCheck, error)
    60  	DeleteHealthCheck(*fastly.DeleteHealthCheckInput) error
    61  
    62  	GetPackage(*fastly.GetPackageInput) (*fastly.Package, error)
    63  	UpdatePackage(*fastly.UpdatePackageInput) (*fastly.Package, error)
    64  
    65  	CreateDictionary(*fastly.CreateDictionaryInput) (*fastly.Dictionary, error)
    66  	GetDictionary(*fastly.GetDictionaryInput) (*fastly.Dictionary, error)
    67  	DeleteDictionary(*fastly.DeleteDictionaryInput) error
    68  	ListDictionaries(*fastly.ListDictionariesInput) ([]*fastly.Dictionary, error)
    69  	UpdateDictionary(*fastly.UpdateDictionaryInput) (*fastly.Dictionary, error)
    70  
    71  	GetDictionaryItems(*fastly.GetDictionaryItemsInput) *fastly.ListPaginator[fastly.DictionaryItem]
    72  	ListDictionaryItems(*fastly.ListDictionaryItemsInput) ([]*fastly.DictionaryItem, error)
    73  	GetDictionaryItem(*fastly.GetDictionaryItemInput) (*fastly.DictionaryItem, error)
    74  	CreateDictionaryItem(*fastly.CreateDictionaryItemInput) (*fastly.DictionaryItem, error)
    75  	UpdateDictionaryItem(*fastly.UpdateDictionaryItemInput) (*fastly.DictionaryItem, error)
    76  	DeleteDictionaryItem(*fastly.DeleteDictionaryItemInput) error
    77  	BatchModifyDictionaryItems(*fastly.BatchModifyDictionaryItemsInput) error
    78  
    79  	GetDictionaryInfo(*fastly.GetDictionaryInfoInput) (*fastly.DictionaryInfo, error)
    80  
    81  	CreateBigQuery(*fastly.CreateBigQueryInput) (*fastly.BigQuery, error)
    82  	ListBigQueries(*fastly.ListBigQueriesInput) ([]*fastly.BigQuery, error)
    83  	GetBigQuery(*fastly.GetBigQueryInput) (*fastly.BigQuery, error)
    84  	UpdateBigQuery(*fastly.UpdateBigQueryInput) (*fastly.BigQuery, error)
    85  	DeleteBigQuery(*fastly.DeleteBigQueryInput) error
    86  
    87  	CreateS3(*fastly.CreateS3Input) (*fastly.S3, error)
    88  	ListS3s(*fastly.ListS3sInput) ([]*fastly.S3, error)
    89  	GetS3(*fastly.GetS3Input) (*fastly.S3, error)
    90  	UpdateS3(*fastly.UpdateS3Input) (*fastly.S3, error)
    91  	DeleteS3(*fastly.DeleteS3Input) error
    92  
    93  	CreateKinesis(*fastly.CreateKinesisInput) (*fastly.Kinesis, error)
    94  	ListKinesis(*fastly.ListKinesisInput) ([]*fastly.Kinesis, error)
    95  	GetKinesis(*fastly.GetKinesisInput) (*fastly.Kinesis, error)
    96  	UpdateKinesis(*fastly.UpdateKinesisInput) (*fastly.Kinesis, error)
    97  	DeleteKinesis(*fastly.DeleteKinesisInput) error
    98  
    99  	CreateSyslog(*fastly.CreateSyslogInput) (*fastly.Syslog, error)
   100  	ListSyslogs(*fastly.ListSyslogsInput) ([]*fastly.Syslog, error)
   101  	GetSyslog(*fastly.GetSyslogInput) (*fastly.Syslog, error)
   102  	UpdateSyslog(*fastly.UpdateSyslogInput) (*fastly.Syslog, error)
   103  	DeleteSyslog(*fastly.DeleteSyslogInput) error
   104  
   105  	CreateLogentries(*fastly.CreateLogentriesInput) (*fastly.Logentries, error)
   106  	ListLogentries(*fastly.ListLogentriesInput) ([]*fastly.Logentries, error)
   107  	GetLogentries(*fastly.GetLogentriesInput) (*fastly.Logentries, error)
   108  	UpdateLogentries(*fastly.UpdateLogentriesInput) (*fastly.Logentries, error)
   109  	DeleteLogentries(*fastly.DeleteLogentriesInput) error
   110  
   111  	CreatePapertrail(*fastly.CreatePapertrailInput) (*fastly.Papertrail, error)
   112  	ListPapertrails(*fastly.ListPapertrailsInput) ([]*fastly.Papertrail, error)
   113  	GetPapertrail(*fastly.GetPapertrailInput) (*fastly.Papertrail, error)
   114  	UpdatePapertrail(*fastly.UpdatePapertrailInput) (*fastly.Papertrail, error)
   115  	DeletePapertrail(*fastly.DeletePapertrailInput) error
   116  
   117  	CreateSumologic(*fastly.CreateSumologicInput) (*fastly.Sumologic, error)
   118  	ListSumologics(*fastly.ListSumologicsInput) ([]*fastly.Sumologic, error)
   119  	GetSumologic(*fastly.GetSumologicInput) (*fastly.Sumologic, error)
   120  	UpdateSumologic(*fastly.UpdateSumologicInput) (*fastly.Sumologic, error)
   121  	DeleteSumologic(*fastly.DeleteSumologicInput) error
   122  
   123  	CreateGCS(*fastly.CreateGCSInput) (*fastly.GCS, error)
   124  	ListGCSs(*fastly.ListGCSsInput) ([]*fastly.GCS, error)
   125  	GetGCS(*fastly.GetGCSInput) (*fastly.GCS, error)
   126  	UpdateGCS(*fastly.UpdateGCSInput) (*fastly.GCS, error)
   127  	DeleteGCS(*fastly.DeleteGCSInput) error
   128  
   129  	CreateFTP(*fastly.CreateFTPInput) (*fastly.FTP, error)
   130  	ListFTPs(*fastly.ListFTPsInput) ([]*fastly.FTP, error)
   131  	GetFTP(*fastly.GetFTPInput) (*fastly.FTP, error)
   132  	UpdateFTP(*fastly.UpdateFTPInput) (*fastly.FTP, error)
   133  	DeleteFTP(*fastly.DeleteFTPInput) error
   134  
   135  	CreateSplunk(*fastly.CreateSplunkInput) (*fastly.Splunk, error)
   136  	ListSplunks(*fastly.ListSplunksInput) ([]*fastly.Splunk, error)
   137  	GetSplunk(*fastly.GetSplunkInput) (*fastly.Splunk, error)
   138  	UpdateSplunk(*fastly.UpdateSplunkInput) (*fastly.Splunk, error)
   139  	DeleteSplunk(*fastly.DeleteSplunkInput) error
   140  
   141  	CreateScalyr(*fastly.CreateScalyrInput) (*fastly.Scalyr, error)
   142  	ListScalyrs(*fastly.ListScalyrsInput) ([]*fastly.Scalyr, error)
   143  	GetScalyr(*fastly.GetScalyrInput) (*fastly.Scalyr, error)
   144  	UpdateScalyr(*fastly.UpdateScalyrInput) (*fastly.Scalyr, error)
   145  	DeleteScalyr(*fastly.DeleteScalyrInput) error
   146  
   147  	CreateLoggly(*fastly.CreateLogglyInput) (*fastly.Loggly, error)
   148  	ListLoggly(*fastly.ListLogglyInput) ([]*fastly.Loggly, error)
   149  	GetLoggly(*fastly.GetLogglyInput) (*fastly.Loggly, error)
   150  	UpdateLoggly(*fastly.UpdateLogglyInput) (*fastly.Loggly, error)
   151  	DeleteLoggly(*fastly.DeleteLogglyInput) error
   152  
   153  	CreateHoneycomb(*fastly.CreateHoneycombInput) (*fastly.Honeycomb, error)
   154  	ListHoneycombs(*fastly.ListHoneycombsInput) ([]*fastly.Honeycomb, error)
   155  	GetHoneycomb(*fastly.GetHoneycombInput) (*fastly.Honeycomb, error)
   156  	UpdateHoneycomb(*fastly.UpdateHoneycombInput) (*fastly.Honeycomb, error)
   157  	DeleteHoneycomb(*fastly.DeleteHoneycombInput) error
   158  
   159  	CreateHeroku(*fastly.CreateHerokuInput) (*fastly.Heroku, error)
   160  	ListHerokus(*fastly.ListHerokusInput) ([]*fastly.Heroku, error)
   161  	GetHeroku(*fastly.GetHerokuInput) (*fastly.Heroku, error)
   162  	UpdateHeroku(*fastly.UpdateHerokuInput) (*fastly.Heroku, error)
   163  	DeleteHeroku(*fastly.DeleteHerokuInput) error
   164  
   165  	CreateSFTP(*fastly.CreateSFTPInput) (*fastly.SFTP, error)
   166  	ListSFTPs(*fastly.ListSFTPsInput) ([]*fastly.SFTP, error)
   167  	GetSFTP(*fastly.GetSFTPInput) (*fastly.SFTP, error)
   168  	UpdateSFTP(*fastly.UpdateSFTPInput) (*fastly.SFTP, error)
   169  	DeleteSFTP(*fastly.DeleteSFTPInput) error
   170  
   171  	CreateLogshuttle(*fastly.CreateLogshuttleInput) (*fastly.Logshuttle, error)
   172  	ListLogshuttles(*fastly.ListLogshuttlesInput) ([]*fastly.Logshuttle, error)
   173  	GetLogshuttle(*fastly.GetLogshuttleInput) (*fastly.Logshuttle, error)
   174  	UpdateLogshuttle(*fastly.UpdateLogshuttleInput) (*fastly.Logshuttle, error)
   175  	DeleteLogshuttle(*fastly.DeleteLogshuttleInput) error
   176  
   177  	CreateCloudfiles(*fastly.CreateCloudfilesInput) (*fastly.Cloudfiles, error)
   178  	ListCloudfiles(*fastly.ListCloudfilesInput) ([]*fastly.Cloudfiles, error)
   179  	GetCloudfiles(*fastly.GetCloudfilesInput) (*fastly.Cloudfiles, error)
   180  	UpdateCloudfiles(*fastly.UpdateCloudfilesInput) (*fastly.Cloudfiles, error)
   181  	DeleteCloudfiles(*fastly.DeleteCloudfilesInput) error
   182  
   183  	CreateDigitalOcean(*fastly.CreateDigitalOceanInput) (*fastly.DigitalOcean, error)
   184  	ListDigitalOceans(*fastly.ListDigitalOceansInput) ([]*fastly.DigitalOcean, error)
   185  	GetDigitalOcean(*fastly.GetDigitalOceanInput) (*fastly.DigitalOcean, error)
   186  	UpdateDigitalOcean(*fastly.UpdateDigitalOceanInput) (*fastly.DigitalOcean, error)
   187  	DeleteDigitalOcean(*fastly.DeleteDigitalOceanInput) error
   188  
   189  	CreateElasticsearch(*fastly.CreateElasticsearchInput) (*fastly.Elasticsearch, error)
   190  	ListElasticsearch(*fastly.ListElasticsearchInput) ([]*fastly.Elasticsearch, error)
   191  	GetElasticsearch(*fastly.GetElasticsearchInput) (*fastly.Elasticsearch, error)
   192  	UpdateElasticsearch(*fastly.UpdateElasticsearchInput) (*fastly.Elasticsearch, error)
   193  	DeleteElasticsearch(*fastly.DeleteElasticsearchInput) error
   194  
   195  	CreateBlobStorage(*fastly.CreateBlobStorageInput) (*fastly.BlobStorage, error)
   196  	ListBlobStorages(*fastly.ListBlobStoragesInput) ([]*fastly.BlobStorage, error)
   197  	GetBlobStorage(*fastly.GetBlobStorageInput) (*fastly.BlobStorage, error)
   198  	UpdateBlobStorage(*fastly.UpdateBlobStorageInput) (*fastly.BlobStorage, error)
   199  	DeleteBlobStorage(*fastly.DeleteBlobStorageInput) error
   200  
   201  	CreateDatadog(*fastly.CreateDatadogInput) (*fastly.Datadog, error)
   202  	ListDatadog(*fastly.ListDatadogInput) ([]*fastly.Datadog, error)
   203  	GetDatadog(*fastly.GetDatadogInput) (*fastly.Datadog, error)
   204  	UpdateDatadog(*fastly.UpdateDatadogInput) (*fastly.Datadog, error)
   205  	DeleteDatadog(*fastly.DeleteDatadogInput) error
   206  
   207  	CreateHTTPS(*fastly.CreateHTTPSInput) (*fastly.HTTPS, error)
   208  	ListHTTPS(*fastly.ListHTTPSInput) ([]*fastly.HTTPS, error)
   209  	GetHTTPS(*fastly.GetHTTPSInput) (*fastly.HTTPS, error)
   210  	UpdateHTTPS(*fastly.UpdateHTTPSInput) (*fastly.HTTPS, error)
   211  	DeleteHTTPS(*fastly.DeleteHTTPSInput) error
   212  
   213  	CreateKafka(*fastly.CreateKafkaInput) (*fastly.Kafka, error)
   214  	ListKafkas(*fastly.ListKafkasInput) ([]*fastly.Kafka, error)
   215  	GetKafka(*fastly.GetKafkaInput) (*fastly.Kafka, error)
   216  	UpdateKafka(*fastly.UpdateKafkaInput) (*fastly.Kafka, error)
   217  	DeleteKafka(*fastly.DeleteKafkaInput) error
   218  
   219  	CreatePubsub(*fastly.CreatePubsubInput) (*fastly.Pubsub, error)
   220  	ListPubsubs(*fastly.ListPubsubsInput) ([]*fastly.Pubsub, error)
   221  	GetPubsub(*fastly.GetPubsubInput) (*fastly.Pubsub, error)
   222  	UpdatePubsub(*fastly.UpdatePubsubInput) (*fastly.Pubsub, error)
   223  	DeletePubsub(*fastly.DeletePubsubInput) error
   224  
   225  	CreateOpenstack(*fastly.CreateOpenstackInput) (*fastly.Openstack, error)
   226  	ListOpenstack(*fastly.ListOpenstackInput) ([]*fastly.Openstack, error)
   227  	GetOpenstack(*fastly.GetOpenstackInput) (*fastly.Openstack, error)
   228  	UpdateOpenstack(*fastly.UpdateOpenstackInput) (*fastly.Openstack, error)
   229  	DeleteOpenstack(*fastly.DeleteOpenstackInput) error
   230  
   231  	GetRegions() (*fastly.RegionsResponse, error)
   232  	GetStatsJSON(*fastly.GetStatsInput, any) error
   233  
   234  	CreateManagedLogging(*fastly.CreateManagedLoggingInput) (*fastly.ManagedLogging, error)
   235  
   236  	CreateVCL(*fastly.CreateVCLInput) (*fastly.VCL, error)
   237  	ListVCLs(*fastly.ListVCLsInput) ([]*fastly.VCL, error)
   238  	GetVCL(*fastly.GetVCLInput) (*fastly.VCL, error)
   239  	UpdateVCL(*fastly.UpdateVCLInput) (*fastly.VCL, error)
   240  	DeleteVCL(*fastly.DeleteVCLInput) error
   241  
   242  	CreateSnippet(i *fastly.CreateSnippetInput) (*fastly.Snippet, error)
   243  	ListSnippets(i *fastly.ListSnippetsInput) ([]*fastly.Snippet, error)
   244  	GetSnippet(i *fastly.GetSnippetInput) (*fastly.Snippet, error)
   245  	GetDynamicSnippet(i *fastly.GetDynamicSnippetInput) (*fastly.DynamicSnippet, error)
   246  	UpdateSnippet(i *fastly.UpdateSnippetInput) (*fastly.Snippet, error)
   247  	UpdateDynamicSnippet(i *fastly.UpdateDynamicSnippetInput) (*fastly.DynamicSnippet, error)
   248  	DeleteSnippet(i *fastly.DeleteSnippetInput) error
   249  
   250  	Purge(i *fastly.PurgeInput) (*fastly.Purge, error)
   251  	PurgeKey(i *fastly.PurgeKeyInput) (*fastly.Purge, error)
   252  	PurgeKeys(i *fastly.PurgeKeysInput) (map[string]string, error)
   253  	PurgeAll(i *fastly.PurgeAllInput) (*fastly.Purge, error)
   254  
   255  	CreateACL(i *fastly.CreateACLInput) (*fastly.ACL, error)
   256  	DeleteACL(i *fastly.DeleteACLInput) error
   257  	GetACL(i *fastly.GetACLInput) (*fastly.ACL, error)
   258  	ListACLs(i *fastly.ListACLsInput) ([]*fastly.ACL, error)
   259  	UpdateACL(i *fastly.UpdateACLInput) (*fastly.ACL, error)
   260  
   261  	CreateACLEntry(i *fastly.CreateACLEntryInput) (*fastly.ACLEntry, error)
   262  	DeleteACLEntry(i *fastly.DeleteACLEntryInput) error
   263  	GetACLEntry(i *fastly.GetACLEntryInput) (*fastly.ACLEntry, error)
   264  	GetACLEntries(*fastly.GetACLEntriesInput) *fastly.ListPaginator[fastly.ACLEntry]
   265  	ListACLEntries(i *fastly.ListACLEntriesInput) ([]*fastly.ACLEntry, error)
   266  	UpdateACLEntry(i *fastly.UpdateACLEntryInput) (*fastly.ACLEntry, error)
   267  	BatchModifyACLEntries(i *fastly.BatchModifyACLEntriesInput) error
   268  
   269  	CreateNewRelic(i *fastly.CreateNewRelicInput) (*fastly.NewRelic, error)
   270  	DeleteNewRelic(i *fastly.DeleteNewRelicInput) error
   271  	GetNewRelic(i *fastly.GetNewRelicInput) (*fastly.NewRelic, error)
   272  	ListNewRelic(i *fastly.ListNewRelicInput) ([]*fastly.NewRelic, error)
   273  	UpdateNewRelic(i *fastly.UpdateNewRelicInput) (*fastly.NewRelic, error)
   274  
   275  	CreateNewRelicOTLP(i *fastly.CreateNewRelicOTLPInput) (*fastly.NewRelicOTLP, error)
   276  	DeleteNewRelicOTLP(i *fastly.DeleteNewRelicOTLPInput) error
   277  	GetNewRelicOTLP(i *fastly.GetNewRelicOTLPInput) (*fastly.NewRelicOTLP, error)
   278  	ListNewRelicOTLP(i *fastly.ListNewRelicOTLPInput) ([]*fastly.NewRelicOTLP, error)
   279  	UpdateNewRelicOTLP(i *fastly.UpdateNewRelicOTLPInput) (*fastly.NewRelicOTLP, error)
   280  
   281  	CreateUser(i *fastly.CreateUserInput) (*fastly.User, error)
   282  	DeleteUser(i *fastly.DeleteUserInput) error
   283  	GetCurrentUser() (*fastly.User, error)
   284  	GetUser(i *fastly.GetUserInput) (*fastly.User, error)
   285  	ListCustomerUsers(i *fastly.ListCustomerUsersInput) ([]*fastly.User, error)
   286  	UpdateUser(i *fastly.UpdateUserInput) (*fastly.User, error)
   287  	ResetUserPassword(i *fastly.ResetUserPasswordInput) error
   288  
   289  	BatchDeleteTokens(i *fastly.BatchDeleteTokensInput) error
   290  	CreateToken(i *fastly.CreateTokenInput) (*fastly.Token, error)
   291  	DeleteToken(i *fastly.DeleteTokenInput) error
   292  	DeleteTokenSelf() error
   293  	GetTokenSelf() (*fastly.Token, error)
   294  	ListCustomerTokens(i *fastly.ListCustomerTokensInput) ([]*fastly.Token, error)
   295  	ListTokens(i *fastly.ListTokensInput) ([]*fastly.Token, error)
   296  
   297  	NewListKVStoreKeysPaginator(i *fastly.ListKVStoreKeysInput) fastly.PaginatorKVStoreEntries
   298  
   299  	GetCustomTLSConfiguration(i *fastly.GetCustomTLSConfigurationInput) (*fastly.CustomTLSConfiguration, error)
   300  	ListCustomTLSConfigurations(i *fastly.ListCustomTLSConfigurationsInput) ([]*fastly.CustomTLSConfiguration, error)
   301  	UpdateCustomTLSConfiguration(i *fastly.UpdateCustomTLSConfigurationInput) (*fastly.CustomTLSConfiguration, error)
   302  	GetTLSActivation(i *fastly.GetTLSActivationInput) (*fastly.TLSActivation, error)
   303  	ListTLSActivations(i *fastly.ListTLSActivationsInput) ([]*fastly.TLSActivation, error)
   304  	UpdateTLSActivation(i *fastly.UpdateTLSActivationInput) (*fastly.TLSActivation, error)
   305  	CreateTLSActivation(i *fastly.CreateTLSActivationInput) (*fastly.TLSActivation, error)
   306  	DeleteTLSActivation(i *fastly.DeleteTLSActivationInput) error
   307  
   308  	CreateCustomTLSCertificate(i *fastly.CreateCustomTLSCertificateInput) (*fastly.CustomTLSCertificate, error)
   309  	DeleteCustomTLSCertificate(i *fastly.DeleteCustomTLSCertificateInput) error
   310  	GetCustomTLSCertificate(i *fastly.GetCustomTLSCertificateInput) (*fastly.CustomTLSCertificate, error)
   311  	ListCustomTLSCertificates(i *fastly.ListCustomTLSCertificatesInput) ([]*fastly.CustomTLSCertificate, error)
   312  	UpdateCustomTLSCertificate(i *fastly.UpdateCustomTLSCertificateInput) (*fastly.CustomTLSCertificate, error)
   313  
   314  	ListTLSDomains(i *fastly.ListTLSDomainsInput) ([]*fastly.TLSDomain, error)
   315  
   316  	CreatePrivateKey(i *fastly.CreatePrivateKeyInput) (*fastly.PrivateKey, error)
   317  	DeletePrivateKey(i *fastly.DeletePrivateKeyInput) error
   318  	GetPrivateKey(i *fastly.GetPrivateKeyInput) (*fastly.PrivateKey, error)
   319  	ListPrivateKeys(i *fastly.ListPrivateKeysInput) ([]*fastly.PrivateKey, error)
   320  
   321  	CreateBulkCertificate(i *fastly.CreateBulkCertificateInput) (*fastly.BulkCertificate, error)
   322  	DeleteBulkCertificate(i *fastly.DeleteBulkCertificateInput) error
   323  	GetBulkCertificate(i *fastly.GetBulkCertificateInput) (*fastly.BulkCertificate, error)
   324  	ListBulkCertificates(i *fastly.ListBulkCertificatesInput) ([]*fastly.BulkCertificate, error)
   325  	UpdateBulkCertificate(i *fastly.UpdateBulkCertificateInput) (*fastly.BulkCertificate, error)
   326  
   327  	CreateTLSSubscription(i *fastly.CreateTLSSubscriptionInput) (*fastly.TLSSubscription, error)
   328  	DeleteTLSSubscription(i *fastly.DeleteTLSSubscriptionInput) error
   329  	GetTLSSubscription(i *fastly.GetTLSSubscriptionInput) (*fastly.TLSSubscription, error)
   330  	ListTLSSubscriptions(i *fastly.ListTLSSubscriptionsInput) ([]*fastly.TLSSubscription, error)
   331  	UpdateTLSSubscription(i *fastly.UpdateTLSSubscriptionInput) (*fastly.TLSSubscription, error)
   332  
   333  	ListServiceAuthorizations(i *fastly.ListServiceAuthorizationsInput) (*fastly.ServiceAuthorizations, error)
   334  	GetServiceAuthorization(i *fastly.GetServiceAuthorizationInput) (*fastly.ServiceAuthorization, error)
   335  	CreateServiceAuthorization(i *fastly.CreateServiceAuthorizationInput) (*fastly.ServiceAuthorization, error)
   336  	UpdateServiceAuthorization(i *fastly.UpdateServiceAuthorizationInput) (*fastly.ServiceAuthorization, error)
   337  	DeleteServiceAuthorization(i *fastly.DeleteServiceAuthorizationInput) error
   338  
   339  	CreateConfigStore(i *fastly.CreateConfigStoreInput) (*fastly.ConfigStore, error)
   340  	DeleteConfigStore(i *fastly.DeleteConfigStoreInput) error
   341  	GetConfigStore(i *fastly.GetConfigStoreInput) (*fastly.ConfigStore, error)
   342  	GetConfigStoreMetadata(i *fastly.GetConfigStoreMetadataInput) (*fastly.ConfigStoreMetadata, error)
   343  	ListConfigStores(i *fastly.ListConfigStoresInput) ([]*fastly.ConfigStore, error)
   344  	ListConfigStoreServices(i *fastly.ListConfigStoreServicesInput) ([]*fastly.Service, error)
   345  	UpdateConfigStore(i *fastly.UpdateConfigStoreInput) (*fastly.ConfigStore, error)
   346  
   347  	CreateConfigStoreItem(i *fastly.CreateConfigStoreItemInput) (*fastly.ConfigStoreItem, error)
   348  	DeleteConfigStoreItem(i *fastly.DeleteConfigStoreItemInput) error
   349  	GetConfigStoreItem(i *fastly.GetConfigStoreItemInput) (*fastly.ConfigStoreItem, error)
   350  	ListConfigStoreItems(i *fastly.ListConfigStoreItemsInput) ([]*fastly.ConfigStoreItem, error)
   351  	UpdateConfigStoreItem(i *fastly.UpdateConfigStoreItemInput) (*fastly.ConfigStoreItem, error)
   352  
   353  	CreateKVStore(i *fastly.CreateKVStoreInput) (*fastly.KVStore, error)
   354  	ListKVStores(i *fastly.ListKVStoresInput) (*fastly.ListKVStoresResponse, error)
   355  	DeleteKVStore(i *fastly.DeleteKVStoreInput) error
   356  	GetKVStore(i *fastly.GetKVStoreInput) (*fastly.KVStore, error)
   357  	ListKVStoreKeys(i *fastly.ListKVStoreKeysInput) (*fastly.ListKVStoreKeysResponse, error)
   358  	GetKVStoreKey(i *fastly.GetKVStoreKeyInput) (string, error)
   359  	DeleteKVStoreKey(i *fastly.DeleteKVStoreKeyInput) error
   360  	InsertKVStoreKey(i *fastly.InsertKVStoreKeyInput) error
   361  	BatchModifyKVStoreKey(i *fastly.BatchModifyKVStoreKeyInput) error
   362  
   363  	CreateSecretStore(i *fastly.CreateSecretStoreInput) (*fastly.SecretStore, error)
   364  	GetSecretStore(i *fastly.GetSecretStoreInput) (*fastly.SecretStore, error)
   365  	DeleteSecretStore(i *fastly.DeleteSecretStoreInput) error
   366  	ListSecretStores(i *fastly.ListSecretStoresInput) (*fastly.SecretStores, error)
   367  	CreateSecret(i *fastly.CreateSecretInput) (*fastly.Secret, error)
   368  	GetSecret(i *fastly.GetSecretInput) (*fastly.Secret, error)
   369  	DeleteSecret(i *fastly.DeleteSecretInput) error
   370  	ListSecrets(i *fastly.ListSecretsInput) (*fastly.Secrets, error)
   371  	CreateClientKey() (*fastly.ClientKey, error)
   372  	GetSigningKey() (ed25519.PublicKey, error)
   373  
   374  	CreateResource(i *fastly.CreateResourceInput) (*fastly.Resource, error)
   375  	DeleteResource(i *fastly.DeleteResourceInput) error
   376  	GetResource(i *fastly.GetResourceInput) (*fastly.Resource, error)
   377  	ListResources(i *fastly.ListResourcesInput) ([]*fastly.Resource, error)
   378  	UpdateResource(i *fastly.UpdateResourceInput) (*fastly.Resource, error)
   379  
   380  	CreateERL(i *fastly.CreateERLInput) (*fastly.ERL, error)
   381  	DeleteERL(i *fastly.DeleteERLInput) error
   382  	GetERL(i *fastly.GetERLInput) (*fastly.ERL, error)
   383  	ListERLs(i *fastly.ListERLsInput) ([]*fastly.ERL, error)
   384  	UpdateERL(i *fastly.UpdateERLInput) (*fastly.ERL, error)
   385  
   386  	CreateCondition(i *fastly.CreateConditionInput) (*fastly.Condition, error)
   387  	DeleteCondition(i *fastly.DeleteConditionInput) error
   388  	GetCondition(i *fastly.GetConditionInput) (*fastly.Condition, error)
   389  	ListConditions(i *fastly.ListConditionsInput) ([]*fastly.Condition, error)
   390  	UpdateCondition(i *fastly.UpdateConditionInput) (*fastly.Condition, error)
   391  
   392  	GetProduct(i *fastly.ProductEnablementInput) (*fastly.ProductEnablement, error)
   393  	EnableProduct(i *fastly.ProductEnablementInput) (*fastly.ProductEnablement, error)
   394  	DisableProduct(i *fastly.ProductEnablementInput) error
   395  }
   396  
   397  // RealtimeStatsInterface is the subset of go-fastly's realtime stats API used here.
   398  type RealtimeStatsInterface interface {
   399  	GetRealtimeStatsJSON(*fastly.GetRealtimeStatsInput, any) error
   400  }
   401  
   402  // Ensure that fastly.Client satisfies Interface.
   403  var _ Interface = (*fastly.Client)(nil)
   404  
   405  // Ensure that fastly.RTSClient satisfies RealtimeStatsInterface.
   406  var _ RealtimeStatsInterface = (*fastly.RTSClient)(nil)