diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index 7e8cdb2..0000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,42 +0,0 @@ -# Amazon Open Source Code of Conduct - -This code of conduct provides guidance on participation in Amazon-managed open -source communities, and outlines the process for reporting unacceptable -behavior. As an organization and community, we are committed to providing an -inclusive environment for everyone. Anyone violating this code of conduct may be -removed and banned from the community. - -**Our open source communities endeavor to:** -- Use welcoming and inclusive language; -- Be respectful of differing viewpoints at all times; -- Accept constructive criticism and work together toward decisions; -- Focus on what is best for the community and users. - -**Our Responsibility.** As contributors, members, or bystanders we each -individually have the responsibility to behave professionally and respectfully -at all times. Disrespectful and unacceptable behaviors include, but are not -limited to: The use of violent threats, abusive, discriminatory, or derogatory -language; -- Offensive comments related to gender, gender identity and expression, sexual - orientation, disability, mental illness, race, political or religious - affiliation; -- Posting of sexually explicit or violent content; -- The use of sexualized language and unwelcome sexual attention or advances; -- Public or private - [harassment](http://todogroup.org/opencodeofconduct/#definitions) of any kind; -- Publishing private information, such as physical or electronic address, - without permission; -- Other conduct which could reasonably be considered inappropriate in a - professional setting; -- Advocating for or encouraging any of the above behaviors. - -**Enforcement and Reporting Code of Conduct Issues.** Instances of abusive, -harassing, or otherwise unacceptable behavior may be reported by contacting -opensource-codeofconduct@amazon.com. All complaints will be reviewed and -investigated and will result in a response that is deemed necessary and -appropriate to the circumstances. - -**Attribution.** _This code of conduct is based on the -[template](http://todogroup.org/opencodeofconduct) established by the [TODO -Group](http://todogroup.org/) and the Scope section from the [Contributor -Covenant version 1.4](http://contributor-covenant.org/version/1/4/)._ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5a5351f..2f73f1d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,8 +1,6 @@ -**Welcome!** Thank you for considering contributing to this project! If I can -help in anyway to get you going, please feel free to reach out. I'm available by -email and Google Hangouts at john@pignata.com. +# How to contribute -# Contributing +Thanks for your interest in the project! We want to welcome contributors so we put together the following set of guidelines to help participate. ## Workflow @@ -21,7 +19,7 @@ email and Google Hangouts at john@pignata.com. ## Setup -- Ensure you're using golang 1.9+. +- Ensure you're using golang 1.10+. ```console go version @@ -33,13 +31,13 @@ email and Google Hangouts at john@pignata.com. - Install the source code from GitHub ```console - go get github.com/jpignata/fargate + go get github.com/turnerlabs/fargate ``` - Run `dep ensure` to install required dependencies ```console - cd $GOPATH/src/github.com/jpignata/fargate + cd $GOPATH/src/github.com/turnerlabs/fargate dep ensure ``` @@ -63,17 +61,31 @@ email and Google Hangouts at john@pignata.com. - For cross-building for all supported platforms, run `make dist` which builds binaries for darwin (64-bit) and linux (Arm, 32-bit, 64-bit). -## Licensing +## Making Changes -This project is released under the [Apache 2.0 license][apache]. +* Create a feature branch from where you want to base your work. + * This is usually the `develop` branch. + * To quickly create a feature branch; `git checkout -b feature/my-feature`. Please avoid working directly on the + `master` branch. +* Make commits of logical units. +* Run `go fmt ./cmd` before committing. +* Make sure you have added the necessary tests for your changes. +* Run _all_ the tests to assure nothing else was accidentally broken. + +## Submitting Changes + +* Push your changes to a feature branch in your fork of the repository. +* Submit a pull request to the `develop` branch to the repository in the turnerlabs organization. -## Code of Conduct +## Release Process -This project abides by the [Amazon Open Source Code of Conduct][amzn-coc]. -Please be nice. +* After a feature pull request has been merged into the `develop` branch, a CI build will be automatically kicked off. The CI build will run unit tests, do a multi-platform build and automatically deploy the build to the [Github releases](https://github.com/turnerlabs/fargate/releases) page as a pre-release using the latest tag (`git describe --tags`) as the version number. +* After the core team decides which features will be included in the next release, a release branch is created (e.g., `release/v0.5`) from develop. +* The `CHANGELOG.md` file is updated to document the release in the release branch. +* The release branch is merged to `master`, tagged, and pushed (along with tags). +* This will kick off a build that builds using the latest tag and deploys as a Github release. +* The release branch is then merged back to `develop`, tagged for pre-release (to start next version, e.g. v0.6.0-pre) and pushed. -[dep]: https://golang.github.io/dep -[dep-install]: https://golang.github.io/dep/docs/installation.html -[dep-releases]: https://github.com/golang/dep/releases -[amzn-coc]: https://aws.github.io/code-of-conduct -[apache]: http://aws.amazon.com/apache-2-0/ +## Licensing + +This project is released under the [Apache 2.0 license][apache]. diff --git a/README.md b/README.md index ab67bb1..75b1761 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,9 @@ # Fargate CLI -[![CircleCI](https://circleci.com/gh/jpignata/fargate/tree/master.svg?style=svg)](https://circleci.com/gh/jpignata/fargate/tree/master) -[![GoDoc](https://godoc.org/github.com/jpignata/fargate?status.svg)](https://godoc.org/github.com/jpignata/fargate) +CLI for [AWS Fargate](https://aws.amazon.com/fargate/) -## Screencast - -[![fargate CLI screencast](http://img.youtube.com/vi/P6iY6ovhbfc/0.jpg)](http://www.youtube.com/watch?v=P6iY6ovhbfc) +[![CircleCI](https://circleci.com/gh/turnerlabs/fargate/tree/master.svg?style=svg)](https://circleci.com/gh/turnerlabs/fargate/tree/master) +[![GoDoc](https://godoc.org/github.com/turnerlabs/fargate?status.svg)](https://godoc.org/github.com/turnerlabs/fargate) ## Usage @@ -38,10 +36,7 @@ the AWS SDK for Go documentation. ### Commands -- [Tasks](#tasks) - [Services](#services) -- [Load Balancers](#load-balancers) -- [Certificates](#certificates) #### Global Flags @@ -52,154 +47,6 @@ the AWS SDK for Go documentation. | --no-color | false | Disable color output | | --verbose | false | Verbose output | -#### Tasks - -Tasks are one-time executions of your container. Instances of your task are run -until you manually stop them either through AWS APIs, the AWS Management -Console, or `fargate task stop`, or until they are interrupted for any reason. - -- [list](#fargate-task-list) -- [run](#fargate-task-run) -- [info](#fargate-task-info) -- [ps](#fargate-task-ps) -- [logs](#fargate-task-logs) -- [stop](#fargate-task-stop) - -##### fargate task list - -```console -fargate task list -``` - -List running task groups - -##### fargate task run - -```console -fargate task run [--num ] [--cpu ] [--memory ] - [--image ] [--env ] - [--task-role ] [--subnet-id ] - [--security-group-id ] -``` - -Run new tasks - -You must specify a task group name in order to interact with the task(s) in -subsequent commands to view logs, stop and inspect tasks. Task group names do -not have to be unique -- multiple configurations of task instances can be -started with the same task group. - -Multiple instances of a task can be run by specifying a number in the --num -flag. If no number is specified, a single task instance will be run. - -CPU and memory settings can be optionally specified as CPU units and mebibytes -respectively using the --cpu and --memory flags. Every 1024 CPU units is -equivilent to a single vCPU. AWS Fargate only supports certain combinations of -CPU and memory configurations: - -| CPU (CPU Units) | Memory (MiB) | -| --------------- | ------------------------------------- | -| 256 | 512, 1024, or 2048 | -| 512 | 1024 through 4096 in 1GiB increments | -| 1024 | 2048 through 8192 in 1GiB increments | -| 2048 | 4096 through 16384 in 1GiB increments | -| 4096 | 8192 through 30720 in 1GiB increments | - -If not specified, fargate will launch minimally sized tasks at 0.25 vCPU (256 -CPU units) and 0.5GB (512 MiB) of memory. - -The Docker container image to use in the task can be optionally specified via -the --image flag. If not specified, fargate will build a new Docker container -image from the current working directory and push it to Amazon ECR in a -repository named for the task group. If the current working directory is a git -repository, the container image will be tagged with the short ref of the HEAD -commit. If not, a timestamp in the format of YYYYMMDDHHMMSS will be used. - -Environment variables can be specified via the --env flag. Specify --env with a -key=value parameter multiple times to add multiple variables. - -Security groups can optionally be specified for the task by passing the ---security-group-id flag with a security group ID. To add multiple security -groups, pass --security-group-id with a security group ID multiple times. If ---security-group-id is omitted, a permissive security group will be applied to -the task. - -By default, the task will be created in the default VPC and attached to the -default VPC subnets for each availability zone. You can override this by -specifying explicit subnets by passing the --subnet-id flag with a subnet ID. - -A task role can be optionally specified via the --task-role flag by providing -eith a full IAM role ARN or the name of an IAM role. The tasks will be able to -assume this role. - -##### fargate task info - -```console -fargate task info [--task ] -``` - -Inspect tasks - -Shows extended information for each running task within a task group or for -specific tasks specified with the --task flag. Information includes environment -variables which could differ between tasks in a task group. To inspect multiple -specific tasks within a task group specific --task with a task ID multiple -times. - -##### fargate task ps - -```console -fargate task ps -``` - -List running tasks - -##### fargate task logs - -```console -fargate task logs [--follow] [--start ] [--end ] - [--filter ] [--task ] -``` - -Show logs from tasks - -Return either a specific segment of task logs or tail logs in real-time using -the --follow option. Logs are prefixed by their log stream name which is in the -format of "fargate/\/\." - -Follow will continue to run and return logs until interrupted by Control-C. If ---follow is passed --end cannot be specified. - -Logs can be returned for specific tasks within a task group by passing a task -ID via the --task flag. Pass --task with a task ID multiple times in order to -retrieve logs from multiple specific tasks. - -A specific window of logs can be requested by passing --start and --end options -with a time expression. The time expression can be either a duration or a -timestamp: - - - Duration (e.g. -1h [one hour ago], -1h10m30s [one hour, ten minutes, and - thirty seconds ago], 2h [two hours from now]) - - Timestamp with optional timezone in the format of YYYY-MM-DD HH:MM:SS [TZ]; - timezone will default to UTC if omitted (e.g. 2017-12-22 15:10:03 EST) - -You can filter logs for specific term by passing a filter expression via the ---filter flag. Pass a single term to search for that term, pass multiple terms -to search for log messages that include all terms. See the [CloudWatch Logs -documentation][cwl-filter-expression] for more details. - -##### fargate task stop - -```console -fargate task stop [--task ] -``` - -Stop tasks - -Stops all tasks within a task group if run with only a task group name or stops -individual tasks if one or more tasks are passed via the --task flag. Specify ---task with a task ID parameter multiple times to stop multiple specific tasks. - #### Services Services manage long-lived instances of your containers that are run on AWS @@ -209,7 +56,6 @@ tasks running. Services can be used in concert with a load balancer to distribute traffic amongst the tasks in your service. - [list](#fargate-service-list) -- [create](#fargate-service-create) - [deploy](#fargate-service-deploy) - [info](#fargate-service-info) - [logs](#fargate-service-logs) @@ -220,7 +66,6 @@ distribute traffic amongst the tasks in your service. - [env list](#fargate-service-env-list) - [update](#fargate-service-update) - [restart](#fargate-service-restart) -- [destroy](#fargate-service-destroy) ##### fargate service list @@ -240,71 +85,6 @@ fargate service create [--cpu ] [--memory ] [--po [--security-group-id ] ``` -Create a new service - -CPU and memory settings can be optionally specified as CPU units and mebibytes -respectively using the --cpu and --memory flags. Every 1024 CPU units is -equivilent to a single vCPU. AWS Fargate only supports certain combinations of -CPU and memory configurations: - -| CPU (CPU Units) | Memory (MiB) | -| --------------- | ------------------------------------- | -| 256 | 512, 1024, or 2048 | -| 512 | 1024 through 4096 in 1GiB increments | -| 1024 | 2048 through 8192 in 1GiB increments | -| 2048 | 4096 through 16384 in 1GiB increments | -| 4096 | 8192 through 30720 in 1GiB increments | - -If not specified, fargate will launch minimally sized tasks at 0.25 vCPU (256 -CPU units) and 0.5GB (512 MiB) of memory. - -The Docker container image to use in the service can be optionally specified -via the --image flag. If not specified, fargate will build a new Docker -container image from the current working directory and push it to Amazon ECR in -a repository named for the task group. If the current working directory is a -git repository, the container image will be tagged with the short ref of the -HEAD commit. If not, a timestamp in the format of YYYYMMDDHHMMSS will be used. - -To use the service with a load balancer, a port must be specified when the -service is created. Specify a port by passing the --port flag and a port -expression of protocol:port-number. For example, if the service listens on port -80 and uses HTTP, specify HTTP:80. Valid protocols are HTTP, HTTPS, and TCP. -You can only specify a single port. - -Services can optionally be configured to use a load balancer. To put a load -balancer in front a service, pass the --lb flag with the name of a load -balancer. If you specify a load balancer, you must also specify a port via the ---port flag to which the load balancer should forward requests. Optionally, -Application Load Balancers can be configured to route HTTP/HTTPS traffic to the -service based upon a rule. Rules are configured by passing one or more rules by -specifying the --rule flag along with a rule expression. Rule expressions are -in the format of TYPE=VALUE. Type can either be PATH or HOST. PATH matches the -PATH of the request and HOST matches the requested hostname in the HTTP -request. Both PATH and HOST types can include up to three wildcard characters: -\* to match multiple characters and ? to match a single character. If rules are -omitted, the service will be the load balancer's default action. - -Environment variables can be specified via the --env flag. Specify --env with a -key=value parameter multiple times to add multiple variables. - -Specify the desired count of tasks the service should maintain by passing the ---num flag with a number. If you omit this flag, fargate will configure a -service with a desired number of tasks of 1. - -Security groups can optionally be specified for the service by passing the ---security-group-id flag with a security group ID. To add multiple security -groups, pass --security-group-id with a security group ID multiple times. If ---security-group-id is omitted, a permissive security group will be applied to -the service. - -By default, the service will be created in the default VPC and attached -to the default VPC subnets for each availability zone. You can override this by -specifying explicit subnets by passing the --subnet-id flag with a subnet ID. - -A task role can be optionally specified via the --task-role flag by providing -eith a full IAM role ARN or the name of an IAM role. The tasks run by the -service will be able to assume this role. - ##### fargate service deploy ```console @@ -454,193 +234,6 @@ Creates a new set of tasks for the service and stops the previous tasks. This is useful if your service needs to reload data cached from an external source, for example. -##### fargate service destroy - -```console -fargate service destroy -``` - -Destroy service - -In order to destroy a service, it must first be scaled to 0 running tasks. - -#### Load Balancers - -Load balancers distribute incoming traffic between the tasks within a service -for HTTP/HTTPS and TCP applications. HTTP/HTTPS load balancers can route to -multiple services based upon rules you specify when you create a new service. - -- [list](#fargate-lb-list) -- [create](#fargate-lb-create) -- [destroy](#fargate-lb-destroy) -- [alias](#fargate-lb-alias) -- [info](#fargate-lb-info) - -##### fargate lb list - -```console -fargate lb list -``` - -List load balancers - -##### fargate lb create - -```console -fargate lb create --port [--certificate ] - [--subnet-id ] [--security-group-id ] -``` - -Create a load balancer - -At least one port must be specified for the load balancer listener via the ---port flag and a port expression of protocol:port-number. For example, if you -wanted an HTTP load balancer to listen on port 80, you would specify HTTP:80. -Valid protocols are HTTP, HTTPS, and TCP. You can specify multiple listeners by -passing the --port flag with a port expression multiple times. You cannot mix -TCP ports with HTTP/HTTPS ports on a single load balancer. - -You can optionally include certificates to secure HTTPS ports by passed the ---certificate flag along with a certificate name. This option can be specified -multiple times to add additional certificates to a single load balancer which -uses Service Name Identification (SNI) to select the appropriate certificate -for the request. - -By default, the load balancer will be created in the default VPC and attached -to the default VPC subnets for each availability zone. You can override this by -specifying explicit subnets by passing the --subnet-id flag with a subnet ID. -HTTP/HTTPS load balancers require at least two subnets attached while a TCP -load balancer requires only one. You may only specify a single subnet from each -availability zone. - -Security groups can optionally be specified for HTTP/HTTPS load balancers by -passing the --security-group-id flag with a security group ID. To add multiple -security groups, pass --security-group-id with a security group ID multiple -times. If --security-group-id is omitted, a permissive security group will be -applied to the load balancer. - -##### fargate lb destroy - -```console -fargate lb destroy -``` - -Destroy load balancer - -##### fargate lb alias - -```console -fargate lb alias -``` - -Create a load balancer alias record - -Create an alias record to the load balancer for domains that are hosted within -Amazon Route 53 and within the same AWS account. If you're using another DNS -provider or host your domains in a different account, you will need to manually -create this record. - -##### fargate lb info - -```console -fargate lb info -``` - -Inspect load balancer - -Returns extended information about a load balancer including a list of -listeners, rules, and certificates in use by the load balancer. - - -#### Certificates - -Certificates are TLS certificates issued by or imported into AWS Certificate -Manager for use in securing traffic between load balancers and end users. ACM -provides TLS certificates free of charge for use within AWS resources. - -- [list](#fargate-certificate-list) -- [import](#fargate-certificate-import) -- [request](#fargate-certificate-request) -- [info](#fargate-certificate-info) -- [validate](#fargate-certificate-validate) -- [destroy](#fargate-certificate-destroy) - -##### fargate certificate list - -```console -fargate certificate list -``` - -List certificates - -##### fargate certificate import - -```console -fargate certificate import --certificate --key [--chain ] -``` - -Import a certificate - -Upload a certificate from a certificate file, a private key file, and optionally -an intermediate certificate chain file. The files must be PEM-encoded and the -private key must not be encrypted or protected by a passphrase. See the -[AWS Certificate Manager documentation][acm-import-cert] for more details. - -##### fargate certificate request - -```console -fargate certificate request [--alias ] -``` - -Request a certificate - -Certificates can be for a fully qualified domain name (e.g. www.example.com) or -a wildcard domain name (e.g. *.example.com). You can add aliases to a -certificate by specifying additional domain names via the --alias flag. To add -multiple aliases, pass --alias multiple times. By default, AWS Certificate -Manager has a limit of 10 domain names per certificate, but this limit can be -raised by AWS support. - -##### fargate certificate info - -```console -fargate certificate info -``` - -Inspect certificate - -Show extended information for a certificate. Includes each validation for the -certificate which shows DNS records which must be created to validate domain -ownership. - -##### fargate certificate validate - -```console -fargate certificate validate -``` - -Validate certificate ownership - -fargate will automatically create DNS validation record to verify ownership for -any domain names that are hosted within Amazon Route 53. If your certificate -has aliases, a validation record will be attempted per alias. Any records whose -domains are hosted in other DNS hosting providers or in other DNS accounts -and cannot be automatically validated will have the necessary records output. -These records are also available in `fargate certificate info \`. - -AWS Certificate Manager may take up to several hours after the DNS records are -created to complete validation and issue the certificate. - -##### fargate certificate destroy - -```console -fargate certificate destroy -``` - -Destroy certificate - -In order to destroy a certificate, it must not be in use by any load balancers or -any other AWS resources. [region-table]: https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/ [go-sdk]: https://aws.amazon.com/documentation/sdk-for-go/ @@ -649,4 +242,3 @@ any other AWS resources. [go-iam-roles-for-ec2-instances]: http://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#iam-roles-for-ec2-instances [go-specifying-credentials]: http://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials [cwl-filter-expression]: http://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html#matching-terms-events -[acm-import-cert]: http://docs.aws.amazon.com/acm/latest/APIReference/API_ImportCertificate.html diff --git a/acm/certificate_test.go b/acm/certificate_test.go index 3dcdef6..038dd52 100644 --- a/acm/certificate_test.go +++ b/acm/certificate_test.go @@ -11,7 +11,7 @@ import ( "github.com/aws/aws-sdk-go/aws" awsacm "github.com/aws/aws-sdk-go/service/acm" "github.com/golang/mock/gomock" - "github.com/jpignata/fargate/acm/mock/sdk" + "github.com/turnerlabs/fargate/acm/mock/sdk" ) func TestValidateAlias(t *testing.T) { diff --git a/acm/main.go b/acm/main.go index 4bb7912..e70c762 100644 --- a/acm/main.go +++ b/acm/main.go @@ -1,6 +1,6 @@ package acm -//go:generate mockgen -package client -destination=mock/client/client.go github.com/jpignata/fargate/acm Client +//go:generate mockgen -package client -destination=mock/client/client.go github.com/turnerlabs/fargate/acm Client //go:generate mockgen -package sdk -source ../vendor/github.com/aws/aws-sdk-go/service/acm/acmiface/interface.go -destination=mock/sdk/acmiface.go github.com/aws/aws-sdk-go/service/acm/acmiface ACMAPI import ( diff --git a/acm/mock/client/client.go b/acm/mock/client/client.go index 707a043..fffe4fa 100644 --- a/acm/mock/client/client.go +++ b/acm/mock/client/client.go @@ -1,12 +1,12 @@ // Code generated by MockGen. DO NOT EDIT. -// Source: github.com/jpignata/fargate/acm (interfaces: Client) +// Source: github.com/turnerlabs/fargate/acm (interfaces: Client) // Package client is a generated GoMock package. package client import ( gomock "github.com/golang/mock/gomock" - acm "github.com/jpignata/fargate/acm" + acm "github.com/turnerlabs/fargate/acm" reflect "reflect" ) diff --git a/cloudwatchlogs/log_group.go b/cloudwatchlogs/log_group.go index 9a64124..928bd6c 100644 --- a/cloudwatchlogs/log_group.go +++ b/cloudwatchlogs/log_group.go @@ -7,7 +7,7 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" awscwl "github.com/aws/aws-sdk-go/service/cloudwatchlogs" - "github.com/jpignata/fargate/console" + "github.com/turnerlabs/fargate/console" ) type GetLogsInput struct { diff --git a/cmd/certificate.go b/cmd/certificate.go deleted file mode 100644 index 438d269..0000000 --- a/cmd/certificate.go +++ /dev/null @@ -1,58 +0,0 @@ -package cmd - -import ( - "errors" - - "github.com/jpignata/fargate/acm" - "github.com/spf13/cobra" -) - -type certificateOperation struct { - acm acm.Client - output Output -} - -func (o certificateOperation) findCertificate(domainName string) (acm.Certificate, error) { - o.output.Debug("Listing certificates [API=acm Action=ListCertificate]") - certificates, err := o.acm.ListCertificates() - - if err != nil { - return acm.Certificate{}, err - } - - certificates = certificates.GetCertificates(domainName) - - switch { - case len(certificates) == 0: - return acm.Certificate{}, errCertificateNotFound - case len(certificates) > 1: - return acm.Certificate{}, errCertificateTooManyFound - } - - o.output.Debug("Describing certificate [API=acm Action=DescribeCertificate ARN=%s]", certificates[0].ARN) - - if err := o.acm.InflateCertificate(&certificates[0]); err != nil { - return acm.Certificate{}, err - } - - return certificates[0], nil -} - -var ( - errCertificateNotFound = errors.New("certificate not found") - errCertificateTooManyFound = errors.New("too many certificates found") - - certificateCmd = &cobra.Command{ - Use: "certificate", - Short: "Manage certificates", - Long: `Manages certificate - -Certificates are TLS certificates issued by or imported into AWS Certificate -Manager for use in securing traffic between load balancers and end users. ACM -provides TLS certificates free of charge for use within AWS resources.`, - } -) - -func init() { - rootCmd.AddCommand(certificateCmd) -} diff --git a/cmd/certificate_destroy.go b/cmd/certificate_destroy.go deleted file mode 100644 index ffaa189..0000000 --- a/cmd/certificate_destroy.go +++ /dev/null @@ -1,59 +0,0 @@ -package cmd - -import ( - "github.com/jpignata/fargate/acm" - "github.com/spf13/cobra" -) - -type certificateDestroyOperation struct { - certificateOperation - domainName string - output Output -} - -func (o certificateDestroyOperation) execute() { - certificate, err := o.findCertificate(o.domainName) - - if err != nil { - switch err { - case errCertificateNotFound: - o.output.Fatal(err, "Could not find certificate for %s", o.domainName) - return - case errCertificateTooManyFound: - o.output.Fatal(err, "Multiple certificates found for %s, for safety please destroy the one you intend via the AWS CLI", o.domainName) - return - default: - o.output.Fatal(err, "Could not destroy certificate") - return - } - } - - o.output.Debug("Deleting certificate [API=acm Action=DeleteCertificate ARN=%s]", certificate.ARN) - if err := o.acm.DeleteCertificate(certificate.ARN); err != nil { - o.output.Fatal(err, "Could not destroy certificate") - return - } - - o.output.Info("Destroyed certificate %s", o.domainName) -} - -var certificateDestroyCmd = &cobra.Command{ - Use: "destroy ", - Short: "Destroy certificate", - Long: `Destroy certificate - -In order to destroy a certificate, it must not be in use by any load balancers or -any other AWS resources.`, - Args: cobra.ExactArgs(1), - Run: func(cmd *cobra.Command, args []string) { - certificateDestroyOperation{ - certificateOperation: certificateOperation{acm: acm.New(sess), output: output}, - domainName: args[0], - output: output, - }.execute() - }, -} - -func init() { - certificateCmd.AddCommand(certificateDestroyCmd) -} diff --git a/cmd/certificate_destroy_test.go b/cmd/certificate_destroy_test.go deleted file mode 100644 index 80bcf7a..0000000 --- a/cmd/certificate_destroy_test.go +++ /dev/null @@ -1,182 +0,0 @@ -package cmd - -import ( - "errors" - "testing" - - "github.com/golang/mock/gomock" - "github.com/jpignata/fargate/acm" - "github.com/jpignata/fargate/acm/mock/client" - "github.com/jpignata/fargate/cmd/mock" -) - -func TestCertificateDestroyOperation(t *testing.T) { - certificateARN := "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012" - domainName := "example.com" - certificate := acm.Certificate{ - ARN: certificateARN, - DomainName: domainName, - } - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockClient.EXPECT().ListCertificates().Return(acm.Certificates{certificate}, nil) - mockClient.EXPECT().InflateCertificate(&certificate).Return(nil) - mockClient.EXPECT().DeleteCertificate(certificateARN).Return(nil) - - certificateDestroyOperation{ - certificateOperation: certificateOperation{ - acm: mockClient, - output: mockOutput, - }, - domainName: domainName, - output: mockOutput, - }.execute() - - if len(mockOutput.FatalMsgs) > 0 { - for _, fatal := range mockOutput.FatalMsgs { - t.Errorf(fatal.Msg, fatal.Errors) - } - } - - if len(mockOutput.InfoMsgs) == 0 { - t.Errorf("Expected info output from operation, got none") - } -} - -func TestCertificateDestroyOperationCertNotFound(t *testing.T) { - domainName := "example.com" - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockClient.EXPECT().ListCertificates().Return(acm.Certificates{}, nil) - - certificateDestroyOperation{ - certificateOperation: certificateOperation{ - acm: mockClient, - output: mockOutput, - }, - domainName: domainName, - output: mockOutput, - }.execute() - - if len(mockOutput.FatalMsgs) == 0 { - t.Errorf("Expected fatal output from operation, got none") - } - - if !mockOutput.Exited { - t.Errorf("Expected premature exit; didn't") - } -} - -func TestCertificateDestroyOperationMoreThanOneCertFound(t *testing.T) { - certificateARN1 := "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012" - certificateARN2 := "arn:aws:acm:us-east-1:123456789012:certificate/abcdef01-2345-6789-0abc-def012345678" - domainName := "example.com" - certificate1 := acm.Certificate{ - ARN: certificateARN1, - DomainName: domainName, - } - certificate2 := acm.Certificate{ - ARN: certificateARN2, - DomainName: domainName, - } - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockClient.EXPECT().ListCertificates().Return(acm.Certificates{certificate1, certificate2}, nil) - - certificateDestroyOperation{ - certificateOperation: certificateOperation{ - acm: mockClient, - output: mockOutput, - }, - domainName: domainName, - output: mockOutput, - }.execute() - - if len(mockOutput.FatalMsgs) == 0 { - t.Errorf("Expected fatal output from operation, got none") - } - - if !mockOutput.Exited { - t.Errorf("Expected premature exit; didn't") - } -} - -func TestCertificateDestroyOperationListError(t *testing.T) { - domainName := "example.com" - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockClient.EXPECT().ListCertificates().Return(acm.Certificates{}, errors.New("something went boom")) - - certificateDestroyOperation{ - certificateOperation: certificateOperation{ - acm: mockClient, - output: mockOutput, - }, - domainName: domainName, - output: mockOutput, - }.execute() - - if len(mockOutput.FatalMsgs) == 0 { - t.Errorf("Expected fatal output from operation, got none") - } - - if !mockOutput.Exited { - t.Errorf("Expected premature exit; didn't") - } -} - -func TestCertificateDestroyOperationDeleteError(t *testing.T) { - certificateARN := "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012" - domainName := "example.com" - certificate := acm.Certificate{ - ARN: certificateARN, - DomainName: domainName, - } - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockClient.EXPECT().ListCertificates().Return(acm.Certificates{certificate}, nil) - mockClient.EXPECT().InflateCertificate(&certificate).Return(nil) - mockClient.EXPECT().DeleteCertificate(certificateARN).Return(errors.New(":-(")) - - certificateDestroyOperation{ - certificateOperation: certificateOperation{ - acm: mockClient, - output: mockOutput, - }, - domainName: domainName, - output: mockOutput, - }.execute() - - if len(mockOutput.FatalMsgs) == 0 { - t.Errorf("Expected fatal output from operation, got none") - } - - if !mockOutput.Exited { - t.Errorf("Expected premature exit; didn't") - } -} diff --git a/cmd/certificate_import.go b/cmd/certificate_import.go deleted file mode 100644 index d66f8d5..0000000 --- a/cmd/certificate_import.go +++ /dev/null @@ -1,121 +0,0 @@ -package cmd - -import ( - "fmt" - "io/ioutil" - - "github.com/jpignata/fargate/acm" - "github.com/spf13/cobra" -) - -type certificateImportOperation struct { - acm acm.Client - certificate []byte - certificateChain []byte - certificateChainFile string - certificateFile string - output Output - privateKey []byte - privateKeyFile string -} - -func (o certificateImportOperation) execute() { - if errs := o.validate(); len(errs) > 0 { - o.output.Fatals(errs, "Invalid certificate import parameters") - return - } - - if errs := o.readFiles(); len(errs) > 0 { - o.output.Fatals(errs, "Could not read file(s)") - return - } - - o.output.Debug("Importing certificate [API=acm Action=ImportCertificate]") - arn, err := o.acm.ImportCertificate(o.certificate, o.privateKey, o.certificateChain) - - if err != nil { - o.output.Fatal(err, "Could not import certificate") - return - } - - o.output.Info("Imported certificate [ARN=%s]", arn) -} - -func (o certificateImportOperation) validate() []error { - var errs []error - - if o.certificateFile == "" { - errs = append(errs, fmt.Errorf("--certificate is required")) - } - - if o.privateKeyFile == "" { - errs = append(errs, fmt.Errorf("--key is required")) - } - - return errs -} - -func (o *certificateImportOperation) readFiles() []error { - var errs []error - - o.output.Debug("Reading certificate [File=%s]", o.certificateFile) - if certificate, err := ioutil.ReadFile(o.certificateFile); err == nil { - o.certificate = certificate - } else { - errs = append(errs, err) - } - - o.output.Debug("Reading private key [File=%s]", o.privateKeyFile) - if privateKey, err := ioutil.ReadFile(o.privateKeyFile); err == nil { - o.privateKey = privateKey - } else { - errs = append(errs, err) - } - - if o.certificateChainFile != "" { - o.output.Debug("Reading certificate chain [File=%s]", o.certificateChainFile) - if certificateChain, err := ioutil.ReadFile(o.certificateChainFile); err == nil { - o.certificateChain = certificateChain - } else { - errs = append(errs, err) - } - } - - return errs -} - -var certificateImportCmd = &cobra.Command{ - Use: "import --certificate --key [--chain ]", - Short: "Import a certificate", - Long: `Import a certificate - -Upload a certificate from a certificate file, a private key file, and optionally -an intermediate certificate chain file. The files must be PEM-encoded and the -private key must not be encrypted or protected by a passphrase. See -http://docs.aws.amazon.com/acm/latest/APIReference/API_ImportCertificate.html -for more details.`, - Run: func(cmd *cobra.Command, args []string) { - certificateImportOperation{ - acm: acm.New(sess), - certificateChainFile: certificateImportFlags.chain, - certificateFile: certificateImportFlags.certificate, - output: output, - privateKeyFile: certificateImportFlags.key, - }.execute() - }, -} - -var certificateImportFlags struct { - certificate, key, chain string -} - -func init() { - certificateImportCmd.Flags().StringVarP(&certificateImportFlags.certificate, "certificate", "c", "", - "Filename of the certificate to import") - certificateImportCmd.Flags().StringVarP(&certificateImportFlags.key, "key", "k", "", - "Filename of the private key used to generate the certificate") - certificateImportCmd.Flags().StringVar(&certificateImportFlags.chain, "chain", "", - "Filename of intermediate certificate chain") - - certificateCmd.AddCommand(certificateImportCmd) -} diff --git a/cmd/certificate_import_test.go b/cmd/certificate_import_test.go deleted file mode 100644 index 787d69e..0000000 --- a/cmd/certificate_import_test.go +++ /dev/null @@ -1,183 +0,0 @@ -package cmd - -import ( - "errors" - "io/ioutil" - "strings" - "testing" - - "github.com/golang/mock/gomock" - "github.com/jpignata/fargate/acm/mock/client" - "github.com/jpignata/fargate/cmd/mock" -) - -func TestCertificateImportOperation(t *testing.T) { - certificateARN := "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012" - certificate := readFile("testdata/certificate.crt", t) - privateKey := readFile("testdata/private.key", t) - certificateChain := readFile("testdata/chain.crt", t) - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockClient.EXPECT().ImportCertificate(certificate, privateKey, certificateChain).Return(certificateARN, nil) - - certificateImportOperation{ - acm: mockClient, - certificateChainFile: "testdata/chain.crt", - certificateFile: "testdata/certificate.crt", - output: mockOutput, - privateKeyFile: "testdata/private.key", - }.execute() - - if len(mockOutput.FatalMsgs) > 0 { - for _, fatal := range mockOutput.FatalMsgs { - t.Errorf(fatal.Msg, fatal.Errors) - } - } - - if len(mockOutput.InfoMsgs) == 0 { - t.Errorf("Expected info output from operation, got none") - } - - if !strings.Contains(mockOutput.InfoMsgs[0], "Imported certificate") { - t.Errorf("Expected info output to say 'Imported certificate [ARN=%s]', got: %s", certificateARN, mockOutput.InfoMsgs[0]) - } -} - -func TestCertificateImportOperationSansChain(t *testing.T) { - var certificateChain []byte - - certificateARN := "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012" - certificate := readFile("testdata/certificate.crt", t) - privateKey := readFile("testdata/private.key", t) - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockClient.EXPECT().ImportCertificate(certificate, privateKey, certificateChain).Return(certificateARN, nil) - - certificateImportOperation{ - acm: mockClient, - certificateFile: "testdata/certificate.crt", - output: mockOutput, - privateKeyFile: "testdata/private.key", - }.execute() - - if len(mockOutput.FatalMsgs) > 0 { - for _, fatal := range mockOutput.FatalMsgs { - t.Errorf(fatal.Msg, fatal.Errors) - } - } - - if len(mockOutput.InfoMsgs) == 0 { - t.Errorf("Expected info output from operation, got none") - } - - if !strings.Contains(mockOutput.InfoMsgs[0], "Imported certificate") { - t.Errorf("Expected info output to say 'Imported certificate [ARN=%s]', got: %s", certificateARN, mockOutput.InfoMsgs[0]) - } -} - -func TestCertificateImportOperationMissingParameters(t *testing.T) { - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - certificateImportOperation{ - acm: mockClient, - output: mockOutput, - }.execute() - - if len(mockOutput.FatalMsgs) == 0 { - t.Errorf("Expected fatal output from operation, got none") - } - - if !mockOutput.Exited { - t.Errorf("Expected premature exit, didn't") - } - - if mockOutput.FatalMsgs[0].Msg != "Invalid certificate import parameters" { - t.Errorf("Expected fatal output 'Invalid certificate import parameters', got: %s", mockOutput.FatalMsgs[0].Msg) - } -} - -func TestCertificateImportOperationBadFiles(t *testing.T) { - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - certificateImportOperation{ - acm: mockClient, - certificateChainFile: "pretend", - certificateFile: "pretend", - output: mockOutput, - privateKeyFile: "pretend", - }.execute() - - if len(mockOutput.FatalMsgs) == 0 { - t.Errorf("Expected fatal output from operation, got none") - } - - if !mockOutput.Exited { - t.Errorf("Expected premature exit, didn't") - } - - if mockOutput.FatalMsgs[0].Msg != "Could not read file(s)" { - t.Errorf("Expected fatal output 'Could not read file(s)', got: %s", mockOutput.FatalMsgs[0].Msg) - } -} - -func readFile(fileName string, t *testing.T) []byte { - contents, err := ioutil.ReadFile(fileName) - - if err != nil { - t.Errorf(err.Error()) - } - - return contents -} - -func TestCertificateImportOperationError(t *testing.T) { - certificate := readFile("testdata/certificate.crt", t) - privateKey := readFile("testdata/private.key", t) - certificateChain := readFile("testdata/chain.crt", t) - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockClient.EXPECT().ImportCertificate(certificate, privateKey, certificateChain).Return("", errors.New(":-(")) - - certificateImportOperation{ - acm: mockClient, - certificateChainFile: "testdata/chain.crt", - certificateFile: "testdata/certificate.crt", - output: mockOutput, - privateKeyFile: "testdata/private.key", - }.execute() - - if len(mockOutput.FatalMsgs) == 0 { - t.Errorf("Expected fatal output from operation, got none") - } - - if !mockOutput.Exited { - t.Errorf("Expected premature exit, didn't") - } - - if mockOutput.FatalMsgs[0].Msg != "Could not import certificate" { - t.Errorf("Expected fatal output 'Could not import certificate', got: %s", mockOutput.FatalMsgs[0].Msg) - } -} diff --git a/cmd/certificate_info.go b/cmd/certificate_info.go deleted file mode 100644 index e7fc332..0000000 --- a/cmd/certificate_info.go +++ /dev/null @@ -1,75 +0,0 @@ -package cmd - -import ( - "strings" - - "github.com/jpignata/fargate/acm" - "github.com/spf13/cobra" -) - -type certificateInfoOperation struct { - certificateOperation - domainName string - output Output -} - -func (o certificateInfoOperation) execute() { - certificate, err := o.findCertificate(o.domainName) - - if err != nil { - switch err { - case errCertificateNotFound: - o.output.Info("No certificate found for %s", o.domainName) - case errCertificateTooManyFound: - o.output.Fatal(nil, "Multiple certificates found for %s", o.domainName) - default: - o.output.Fatal(err, "Could not find certificate for %s", o.domainName) - } - - return - } - - o.display(certificate) -} - -func (o certificateInfoOperation) display(certificate acm.Certificate) { - o.output.KeyValue("Domain Name", certificate.DomainName, 0) - o.output.KeyValue("Status", Titleize(certificate.Status), 0) - o.output.KeyValue("Type", Titleize(certificate.Type), 0) - o.output.KeyValue("Subject Alternative Names", strings.Join(certificate.SubjectAlternativeNames, ", "), 0) - - if len(certificate.Validations) > 0 { - rows := [][]string{ - []string{"DOMAIN NAME", "STATUS", "RECORD"}, - } - - for _, v := range certificate.Validations { - rows = append(rows, []string{v.DomainName, Titleize(v.Status), v.ResourceRecordString()}) - } - - o.output.LineBreak() - o.output.Table("Validations", rows) - } -} - -var certificateInfoCmd = &cobra.Command{ - Use: "info ", - Short: "Inspect certificate", - Long: `Inspect certificate - -Show extended information for a certificate. Includes each validation for the -certificate which shows DNS records which must be created to validate domain -ownership.`, - Args: cobra.ExactArgs(1), - Run: func(cmd *cobra.Command, args []string) { - certificateInfoOperation{ - certificateOperation: certificateOperation{acm: acm.New(sess), output: output}, - domainName: args[0], - output: output, - }.execute() - }, -} - -func init() { - certificateCmd.AddCommand(certificateInfoCmd) -} diff --git a/cmd/certificate_info_test.go b/cmd/certificate_info_test.go deleted file mode 100644 index 5853fda..0000000 --- a/cmd/certificate_info_test.go +++ /dev/null @@ -1,215 +0,0 @@ -package cmd - -import ( - "errors" - "reflect" - "testing" - - "github.com/golang/mock/gomock" - "github.com/jpignata/fargate/acm" - "github.com/jpignata/fargate/acm/mock/client" - "github.com/jpignata/fargate/cmd/mock" -) - -func TestCertificateInfoOperation(t *testing.T) { - domainName := "example.com" - certificateARN := "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012" - certificate := acm.Certificate{ - ARN: certificateARN, - DomainName: domainName, - Type: "AMAZON_ISSUED", - Status: "PENDING_VALIDATION", - SubjectAlternativeNames: []string{"staging1.example.com", "staging2.example.com"}, - Validations: []acm.CertificateValidation{ - acm.CertificateValidation{ - Status: "SUCCESS", - DomainName: "staging.example.com", - ResourceRecord: acm.CertificateResourceRecord{ - Name: "_beeed67ae3f2d83f6cd3e19a8064947b.staging.example.com", - Type: "CNAME", - Value: "_6ddc33cd42c3fe3d5eca4cb075013a0a.acm-validations.aws.", - }, - }, - }, - } - certificateList := acm.Certificates{certificate} - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockClient.EXPECT().ListCertificates().Return(certificateList, nil) - mockClient.EXPECT().InflateCertificate(gomock.Any()).Return(nil) - - certificateInfoOperation{ - certificateOperation: certificateOperation{ - acm: mockClient, - output: mockOutput, - }, - domainName: domainName, - output: mockOutput, - }.execute() - - if len(mockOutput.FatalMsgs) > 0 { - for _, fatal := range mockOutput.FatalMsgs { - t.Errorf(fatal.Msg, fatal.Errors) - } - } - - if len(mockOutput.KeyValueMsgs) == 0 { - t.Errorf("Expected key value output from operation, got none") - } - - if mockOutput.KeyValueMsgs["Domain Name"] != domainName { - t.Errorf("Expected Domain Name == %s, got %s", domainName, mockOutput.KeyValueMsgs["Domain Name"]) - } - - if mockOutput.KeyValueMsgs["Status"] != "Pending Validation" { - t.Logf(mockOutput.KeyValueMsgs["Status"]) - t.Logf(Titleize(mockOutput.KeyValueMsgs["Status"])) - t.Errorf("Expected Status == Pending Validation, got %s", mockOutput.KeyValueMsgs["Status"]) - } - - if mockOutput.KeyValueMsgs["Type"] != "Amazon Issued" { - t.Errorf("Expected Type == Amazon Issued, got %s", mockOutput.KeyValueMsgs["Type"]) - } - - if mockOutput.KeyValueMsgs["Subject Alternative Names"] != "staging1.example.com, staging2.example.com" { - t.Errorf( - "Expected Subject Alternative Names == staging1.example.com, staging2.example.com, got %s", - mockOutput.KeyValueMsgs["Subject Alternative Names"], - ) - } - - if len(mockOutput.Tables) != 1 { - t.Errorf("Expected 1 table, got %d", len(mockOutput.Tables)) - } - - if len(mockOutput.Tables[0].Rows) != 2 { - t.Errorf("Expected 2 rows , got %d", len(mockOutput.Tables[0].Rows)) - } - - if mockOutput.Tables[0].Header != "Validations" { - t.Errorf("Expected table with header Validations , got %s", mockOutput.Tables[0].Header) - } - - if !reflect.DeepEqual(mockOutput.Tables[0].Rows[0], []string{"DOMAIN NAME", "STATUS", "RECORD"}) { - t.Errorf("Expected table with validation column names , got %+v", mockOutput.Tables[0].Rows[0]) - } - - if mockOutput.Tables[0].Rows[1][0] != "staging.example.com" { - t.Errorf("Expected Validation Domain Name == staging.example.com, got %s", mockOutput.Tables[0].Rows[1][0]) - } - - if mockOutput.Tables[0].Rows[1][1] != "Success" { - t.Errorf("Expected Validation Status == Success, got %s", mockOutput.Tables[0].Rows[1][1]) - } - - if mockOutput.Tables[0].Rows[1][2] != "CNAME _beeed67ae3f2d83f6cd3e19a8064947b.staging.example.com -> _6ddc33cd42c3fe3d5eca4cb075013a0a.acm-validations.aws." { - t.Errorf("Expected Validation Record == CNAME _beeed67ae3f2d83f6cd3e19a8064947b.staging.example.com -> _6ddc33cd42c3fe3d5eca4cb075013a0a.acm-validations.aws., got %s", mockOutput.Tables[0].Rows[1][2]) - } -} - -func TestCertificateInfoOperationNotFound(t *testing.T) { - certificateList := acm.Certificates{} - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockClient.EXPECT().ListCertificates().Return(certificateList, nil) - - certificateInfoOperation{ - certificateOperation: certificateOperation{ - acm: mockClient, - output: mockOutput, - }, - domainName: "example.com", - output: mockOutput, - }.execute() - - if len(mockOutput.FatalMsgs) > 0 { - for _, fatal := range mockOutput.FatalMsgs { - t.Errorf(fatal.Msg, fatal.Errors) - } - } - - if mockOutput.InfoMsgs[0] != "No certificate found for example.com" { - t.Errorf("Expected info 'No certificate found for example.com', got: %+v", mockOutput.InfoMsgs) - } -} - -func TestCertificateInfoOperationListError(t *testing.T) { - certificateList := acm.Certificates{} - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockClient.EXPECT().ListCertificates().Return(certificateList, errors.New("boom")) - - certificateInfoOperation{ - certificateOperation: certificateOperation{ - acm: mockClient, - output: mockOutput, - }, - domainName: "example.com", - output: mockOutput, - }.execute() - - if len(mockOutput.FatalMsgs) == 0 { - t.Errorf("Expected error output, received none") - } - - if mockOutput.FatalMsgs[0].Msg != "Could not find certificate for example.com" { - t.Errorf("Expected info 'Could not find certificate for example.com', got: %s", mockOutput.FatalMsgs[0].Msg) - } - - if !mockOutput.Exited { - t.Errorf("Expected premature exit; didn't") - } -} - -func TestCertificateInfoOperationDescribeError(t *testing.T) { - certificate := acm.Certificate{ - ARN: "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012", - DomainName: "example.com", - } - certificateList := acm.Certificates{certificate} - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockClient.EXPECT().ListCertificates().Return(certificateList, nil) - mockClient.EXPECT().InflateCertificate(gomock.Any()).Return(errors.New("boom")) - - certificateInfoOperation{ - certificateOperation: certificateOperation{ - acm: mockClient, - output: mockOutput, - }, - domainName: "example.com", - output: mockOutput, - }.execute() - - if len(mockOutput.FatalMsgs) == 0 { - t.Errorf("Expected error output, received none") - } - - if mockOutput.FatalMsgs[0].Msg != "Could not find certificate for example.com" { - t.Errorf("Expected info 'Could not find certificate for example.com', got: %s", mockOutput.FatalMsgs[0].Msg) - } - - if !mockOutput.Exited { - t.Errorf("Expected premature exit; didn't") - } -} diff --git a/cmd/certificate_list.go b/cmd/certificate_list.go deleted file mode 100644 index c547087..0000000 --- a/cmd/certificate_list.go +++ /dev/null @@ -1,112 +0,0 @@ -package cmd - -import ( - "context" - "sort" - "strings" - "sync" - - "github.com/jpignata/fargate/acm" - "github.com/spf13/cobra" - "golang.org/x/time/rate" -) - -type certificateListOperation struct { - acm acm.Client - output Output -} - -func (o certificateListOperation) execute() { - certificates, err := o.find() - - if err != nil { - o.output.Fatal(err, "Could not list certificates") - return - } - - if len(certificates) == 0 { - o.output.Info("No certificates found") - return - } - - rows := [][]string{ - []string{"CERTIFICATE", "TYPE", "STATUS", "SUBJECT ALTERNATIVE NAMES"}, - } - - sort.Slice(certificates, func(i, j int) bool { - return certificates[i].DomainName < certificates[j].DomainName - }) - - for _, certificate := range certificates { - rows = append(rows, - []string{ - certificate.DomainName, - Titleize(certificate.Type), - Titleize(certificate.Status), - strings.Join(certificate.SubjectAlternativeNames, ", "), - }, - ) - } - - o.output.Table("", rows) -} - -func (o certificateListOperation) find() (acm.Certificates, error) { - var wg sync.WaitGroup - - o.output.Debug("Listing certificates [API=acm Action=ListCertificates]") - certificates, err := o.acm.ListCertificates() - - if err != nil { - return acm.Certificates{}, err - } - - errs := make(chan error) - done := make(chan bool) - limiter := rate.NewLimiter(describeRequestLimitRate, 1) - - for i := 0; i < len(certificates); i++ { - wg.Add(1) - - go func(index int) { - defer wg.Done() - - if err := limiter.Wait(context.Background()); err == nil { - o.output.Debug("Describing certificate [API=acm Action=DescribeCertificate ARN=%s]", certificates[index].ARN) - if err := o.acm.InflateCertificate(&certificates[index]); err != nil { - errs <- err - } - } - }(i) - } - - go func() { - wg.Wait() - done <- true - }() - - select { - case err := <-errs: - return acm.Certificates{}, err - case <-done: - return certificates, nil - } -} - -func (o certificateListOperation) display(certificates []acm.Certificate) { -} - -var certificateListCmd = &cobra.Command{ - Use: "list", - Short: "List certificates", - Run: func(cmd *cobra.Command, args []string) { - certificateListOperation{ - acm: acm.New(sess), - output: output, - }.execute() - }, -} - -func init() { - certificateCmd.AddCommand(certificateListCmd) -} diff --git a/cmd/certificate_list_test.go b/cmd/certificate_list_test.go deleted file mode 100644 index d840ec3..0000000 --- a/cmd/certificate_list_test.go +++ /dev/null @@ -1,215 +0,0 @@ -package cmd - -import ( - "errors" - "reflect" - "testing" - - "github.com/golang/mock/gomock" - "github.com/jpignata/fargate/acm" - "github.com/jpignata/fargate/acm/mock/client" - "github.com/jpignata/fargate/cmd/mock" -) - -func TestCertificateListOperation(t *testing.T) { - certificateList := acm.Certificates{ - acm.Certificate{ - ARN: "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012", - DomainName: "example.com", - Type: "AMAZON_ISSUED", - Status: "PENDING_VALIDATION", - SubjectAlternativeNames: []string{"staging1.example.com", "staging2.example.com"}, - }, - } - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockClient.EXPECT().ListCertificates().Return(certificateList, nil) - mockClient.EXPECT().InflateCertificate(&certificateList[0]).Return(nil) - - certificateListOperation{ - acm: mockClient, - output: mockOutput, - }.execute() - - if len(mockOutput.Tables) != 1 { - t.Errorf("Expected table, got none") - } - - if len(mockOutput.Tables[0].Rows) != 2 { - t.Errorf("Expected table with 2 rows, got %d", len(mockOutput.Tables[0].Rows)) - } - - if !reflect.DeepEqual( - mockOutput.Tables[0].Rows[0], - []string{"CERTIFICATE", "TYPE", "STATUS", "SUBJECT ALTERNATIVE NAMES"}, - ) { - t.Errorf("Expected column headers, found %+v", mockOutput.Tables[0].Rows[0]) - } - - if mockOutput.Tables[0].Rows[1][0] != "example.com" { - t.Errorf("Expected Domain Name == example.com, found %s", mockOutput.Tables[0].Rows[1][0]) - } - - if mockOutput.Tables[0].Rows[1][1] != "Amazon Issued" { - t.Errorf("Expected Type == Amazon Issued, found %s", mockOutput.Tables[0].Rows[1][1]) - } - - if mockOutput.Tables[0].Rows[1][2] != "Pending Validation" { - t.Errorf("Expected Status == Pending Validation, found %s", mockOutput.Tables[0].Rows[1][2]) - } - - if mockOutput.Tables[0].Rows[1][3] != "staging1.example.com, staging2.example.com" { - t.Errorf("Expected Subject Alternative Names == staging1.example.com, staging2.example.com, found %s", mockOutput.Tables[0].Rows[1][3]) - } -} - -func TestCertificateListOperationOrdered(t *testing.T) { - certificateList := acm.Certificates{ - acm.Certificate{ - ARN: "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012-f", - DomainName: "f.com", - }, - acm.Certificate{ - ARN: "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012-c", - DomainName: "c.com", - }, - acm.Certificate{ - ARN: "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012-a", - DomainName: "a.com", - }, - acm.Certificate{ - ARN: "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012-d", - DomainName: "d.com", - }, - acm.Certificate{ - ARN: "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012-e", - DomainName: "e.com", - }, - acm.Certificate{ - ARN: "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012-b", - DomainName: "b.com", - }, - } - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockClient.EXPECT().ListCertificates().Return(certificateList, nil) - mockClient.EXPECT().InflateCertificate(gomock.Any()).Return(nil).Times(len(certificateList)) - - certificateListOperation{ - acm: mockClient, - output: mockOutput, - }.execute() - - for i, r := range mockOutput.Tables[0].Rows { - // Skip header and first row - if i <= 1 { - continue - } - - // Compare domain to the domain of the previous row, check it is lexicographically subsequent - if mockOutput.Tables[0].Rows[i-1][0] > r[0] { - t.Errorf("Expected alphabetical order, got %+v", mockOutput.Tables[0].Rows[1:len(mockOutput.Tables[0].Rows)+1]) - break - } - } -} - -func TestCertificateListOperationNotFound(t *testing.T) { - certificateList := acm.Certificates{} - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockClient.EXPECT().ListCertificates().Return(certificateList, nil) - - certificateListOperation{ - acm: mockClient, - output: mockOutput, - }.execute() - - if len(mockOutput.FatalMsgs) > 0 { - for _, fatal := range mockOutput.FatalMsgs { - t.Errorf(fatal.Msg, fatal.Errors) - } - } - - if mockOutput.InfoMsgs[0] != "No certificates found" { - t.Errorf("Expected info 'No certificate found', got: %+v", mockOutput.InfoMsgs) - } -} - -func TestCertificateListOperationListError(t *testing.T) { - certificateList := acm.Certificates{} - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockClient.EXPECT().ListCertificates().Return(certificateList, errors.New("boom")) - - certificateListOperation{ - acm: mockClient, - output: mockOutput, - }.execute() - - if len(mockOutput.FatalMsgs) == 0 { - t.Errorf("Expected error output, received none") - } - - if mockOutput.FatalMsgs[0].Msg != "Could not list certificates" { - t.Errorf("Expected info 'Could not list certificates', got: %s", mockOutput.FatalMsgs[0].Msg) - } - - if !mockOutput.Exited { - t.Errorf("Expected premature exit; didn't") - } -} - -func TestCertificateListOperationDescribeError(t *testing.T) { - certificate := acm.Certificate{ - ARN: "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012", - DomainName: "example.com", - } - certificateList := acm.Certificates{certificate} - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockClient.EXPECT().ListCertificates().Return(certificateList, nil) - mockClient.EXPECT().InflateCertificate(&certificate).Return(errors.New("boom")) - - certificateListOperation{ - acm: mockClient, - output: mockOutput, - }.execute() - - if len(mockOutput.FatalMsgs) == 0 { - t.Errorf("Expected error output, received none") - } - - if mockOutput.FatalMsgs[0].Msg != "Could not list certificates" { - t.Errorf("Expected info 'Could not list certificates', got: %s", mockOutput.FatalMsgs[0].Msg) - } - - if !mockOutput.Exited { - t.Errorf("Expected premature exit; didn't") - } -} diff --git a/cmd/certificate_request.go b/cmd/certificate_request.go deleted file mode 100644 index 546b0fe..0000000 --- a/cmd/certificate_request.go +++ /dev/null @@ -1,90 +0,0 @@ -package cmd - -import ( - "github.com/jpignata/fargate/acm" - "github.com/spf13/cobra" -) - -type certificateRequestOperation struct { - acm acm.Client - aliases []string - output Output - domainName string -} - -func (o certificateRequestOperation) execute() { - if errs := o.validate(); len(errs) > 0 { - o.output.Fatals(errs, "Invalid certificate request parameters") - - return - } - - o.output.Debug("Requesting certificate [API=acm Action=RequestCertificate]") - - if arn, err := o.acm.RequestCertificate(o.domainName, o.aliases); err == nil { - o.output.Debug("Requested certificate [ARN=%s]", arn) - } else { - o.output.Fatal(err, "Could not request certificate") - - return - } - - o.output.Info("Requested certificate for %s", o.domainName) - o.output.LineBreak() - o.output.Say("You must validate ownership of the domain name for the certificate to be issued.", 0) - o.output.LineBreak() - o.output.Say("If your domain is hosted using Amazon Route 53, this can be done automatically by running:", 0) - o.output.Say("fargate certificate validate %s", 1, o.domainName) - o.output.LineBreak() - o.output.Say("If not, you must manually create the DNS records returned by running:", 0) - o.output.Say("fargate certificate info %s", 1, o.domainName) -} - -func (o certificateRequestOperation) validate() []error { - var errors []error - - if err := acm.ValidateDomainName(o.domainName); err != nil { - errors = append(errors, err) - } - - for _, alias := range o.aliases { - if err := acm.ValidateAlias(alias); err != nil { - errors = append(errors, err) - } - } - - return errors -} - -var certificateRequestCmd = &cobra.Command{ - Use: "request ", - Short: "Request a certificate", - Long: `Request a certificate - -Certificates can be for a fully qualified domain name (e.g. www.example.com) or -a wildcard domain name (e.g. *.example.com). You can add aliases to a -certificate by specifying additional domain names via the --alias flag. To add -multiple aliases, pass --alias multiple times. By default, AWS Certificate -Manager has a limit of 10 domain names per certificate, but this limit can be -raised by AWS support.`, - Args: cobra.ExactArgs(1), - Run: func(cmd *cobra.Command, args []string) { - certificateRequestOperation{ - acm: acm.New(sess), - aliases: certificateRequestFlags.aliases, - output: output, - domainName: args[0], - }.execute() - }, -} - -var certificateRequestFlags struct { - aliases []string -} - -func init() { - certificateRequestCmd.Flags().StringSliceVarP(&certificateRequestFlags.aliases, "alias", "a", []string{}, - `Additional domain names to be included in the certificate (can be specified multiple times)`) - - certificateCmd.AddCommand(certificateRequestCmd) -} diff --git a/cmd/certificate_request_test.go b/cmd/certificate_request_test.go deleted file mode 100644 index 9ef2691..0000000 --- a/cmd/certificate_request_test.go +++ /dev/null @@ -1,121 +0,0 @@ -package cmd - -import ( - "fmt" - "strings" - "testing" - - "github.com/golang/mock/gomock" - "github.com/jpignata/fargate/acm/mock/client" - "github.com/jpignata/fargate/cmd/mock" -) - -func TestCertificateRequestOperation(t *testing.T) { - certificateARN := "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012" - domainName := "example.com" - aliases := []string{"www.example.com"} - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - operation := certificateRequestOperation{ - acm: mockClient, - aliases: aliases, - domainName: domainName, - output: mockOutput, - } - - mockClient.EXPECT().RequestCertificate(domainName, aliases).Return(certificateARN, nil) - - operation.execute() - - if len(mockOutput.InfoMsgs) == 0 { - t.Errorf("Expected info output from operation, got none") - } -} - -func TestCertificateRequestOperationError(t *testing.T) { - domainName := "example.com" - aliases := []string{} - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - operation := certificateRequestOperation{ - acm: mockClient, - aliases: aliases, - domainName: domainName, - output: mockOutput, - } - - mockClient.EXPECT().RequestCertificate(domainName, aliases).Return("", fmt.Errorf("oops, something went wrong")) - - operation.execute() - - if !mockOutput.Exited { - t.Errorf("Expected premature exit; didn't") - } - - if len(mockOutput.FatalMsgs) == 0 { - t.Errorf("Expected error output from operation, got none") - } -} - -func TestCertificateRequestOperationInvalid(t *testing.T) { - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - operation := certificateRequestOperation{ - acm: mockClient, - domainName: "z", // Invalid - output: mockOutput, - } - - operation.execute() - - if !mockOutput.Exited { - t.Errorf("Expected premature exit; didn't") - } -} - -func TestCertificateRequestOperationValidateInvalidDomainName(t *testing.T) { - operation := certificateRequestOperation{ - domainName: "z", // Invalid - } - - errs := operation.validate() - - if len(errs) != 1 { - t.Errorf("Invalid number of errors; want 1, got: %d", len(errs)) - } - - if strings.Index(errs[0].Error(), "The domain name requires at least 2 octets") == -1 { - t.Errorf("Unexpected error; want: 'The domain name requires at leasr 2 octets', got: %s", errs[0].Error()) - } -} - -func TestCertificateRequestOperationValidateInvalidAlias(t *testing.T) { - operation := certificateRequestOperation{ - domainName: "example.com", - aliases: []string{"z"}, // Invalid - } - - errs := operation.validate() - - if len(errs) != 1 { - t.Errorf("Invalid number of errors; want 1, got: %d", len(errs)) - } - - if strings.Index(errs[0].Error(), "An alias requires at least 2 octets") == -1 { - t.Errorf("Unexpected error; want: 'An alias requires at least 2 octets', got: %s", errs[0].Error()) - } -} diff --git a/cmd/certificate_test.go b/cmd/certificate_test.go deleted file mode 100644 index 104f2dd..0000000 --- a/cmd/certificate_test.go +++ /dev/null @@ -1,96 +0,0 @@ -package cmd - -import ( - "reflect" - "testing" - - "github.com/golang/mock/gomock" - "github.com/jpignata/fargate/acm" - "github.com/jpignata/fargate/acm/mock/client" - "github.com/jpignata/fargate/cmd/mock" -) - -func TestFindCertificate(t *testing.T) { - certificate := acm.Certificate{ - DomainName: "www.example.com", - ARN: "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012", - Status: "ISSUED", - Type: "AMAZON_ISSUED", - } - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockClient.EXPECT().ListCertificates().Return(acm.Certificates{certificate}, nil) - mockClient.EXPECT().InflateCertificate(&certificate).Return(nil) - - operation := certificateOperation{ - acm: mockClient, - output: mockOutput, - } - foundCertificate, err := operation.findCertificate("www.example.com") - - if err != nil { - t.Errorf("Expected no error, got %v", err) - } - - if !reflect.DeepEqual(foundCertificate, certificate) { - t.Errorf("Expected to find %+v, got: %v", certificate, foundCertificate) - } -} - -func TestFindCertificateNotFound(t *testing.T) { - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockClient.EXPECT().ListCertificates().Return(acm.Certificates{}, nil) - - operation := certificateOperation{ - acm: mockClient, - output: mockOutput, - } - foundCertificate, err := operation.findCertificate("www.example.com") - - if err != errCertificateNotFound { - t.Errorf("Expected errCertificateNotFound, got %v", err) - } - - if !reflect.DeepEqual(foundCertificate, acm.Certificate{}) { - t.Errorf("Expected empty Certificate, got: %v", foundCertificate) - } -} - -func TestFindCertificateTooManyFound(t *testing.T) { - certificates := acm.Certificates{ - acm.Certificate{DomainName: "www.example.com", ARN: "arn:1"}, - acm.Certificate{DomainName: "www.example.com", ARN: "arn:2"}, - } - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockClient.EXPECT().ListCertificates().Return(certificates, nil) - - operation := certificateOperation{ - acm: mockClient, - output: mockOutput, - } - foundCertificate, err := operation.findCertificate("www.example.com") - - if err != errCertificateTooManyFound { - t.Errorf("Expected errCertificateTooManyFound, got %v", err) - } - - if !reflect.DeepEqual(foundCertificate, acm.Certificate{}) { - t.Errorf("Expected empty Certificate, got: %v", foundCertificate) - } -} diff --git a/cmd/certificate_validate.go b/cmd/certificate_validate.go deleted file mode 100644 index 5226e7c..0000000 --- a/cmd/certificate_validate.go +++ /dev/null @@ -1,101 +0,0 @@ -package cmd - -import ( - "fmt" - - "github.com/jpignata/fargate/acm" - "github.com/jpignata/fargate/route53" - "github.com/spf13/cobra" -) - -type certificateValidateOperation struct { - certificateOperation - domainName string - output Output - route53 route53.Client -} - -func (o certificateValidateOperation) execute() { - certificate, err := o.findCertificate(o.domainName) - - if err != nil { - o.output.Fatal(err, "Could not validate certificate") - return - } - - if !certificate.IsPendingValidation() { - o.output.Fatal(fmt.Errorf("certificate %s is in state %s", o.domainName, Humanize(certificate.Status)), "Could not validate certificate") - return - } - - o.output.Debug("Listing hosted zones [API=route53 Action=ListHostedZones]") - hostedZones, err := o.route53.ListHostedZones() - - if err != nil { - o.output.Fatal(err, "Could not validate certificate") - return - } - - for _, v := range certificate.Validations { - switch { - case v.IsPendingValidation(): - if zone, ok := hostedZones.FindSuperDomainOf(v.DomainName); ok { - o.output.Debug("Creating resource record [API=route53 Action=ChangeResourceRecordSets HostedZone=%s]", zone.ID) - id, err := o.route53.CreateResourceRecord( - route53.CreateResourceRecordInput{ - HostedZoneID: zone.ID, - RecordType: v.ResourceRecord.Type, - Name: v.ResourceRecord.Name, - Value: v.ResourceRecord.Value, - }, - ) - - if err != nil { - o.output.Fatal(err, "Could not validate certificate") - return - } - - o.output.Debug("Created resource record [ChangeID=%s]", id) - o.output.Info("[%s] created validation record", v.DomainName) - } else { - o.output.Warn("[%s] could not find zone in Amazon Route 53", v.DomainName) - } - case v.IsSuccess(): - o.output.Info("[%s] already validated", v.DomainName) - case v.IsFailed(): - o.output.Fatal(nil, "[%s] failed validation", v.DomainName) - return - default: - o.output.Warn("[%s] unexpected status: %s", v.DomainName, Humanize(v.Status)) - } - } -} - -var certificateValidateCmd = &cobra.Command{ - Use: "validate ", - Args: cobra.ExactArgs(1), - Short: "Validate certificate ownership", - Long: `Validate certificate ownership - -fargate will automatically create DNS validation record to verify ownership for -any domain names that are hosted within Amazon Route 53. If your certificate -has aliases, a validation record will be attempted per alias. Any records whose -domains are hosted in other DNS hosting providers or in other DNS accounts -and cannot be automatically validated will have the necessary records output. -These records are also available in fargate certificate info \. - -AWS Certificate Manager may take up to several hours after the DNS records are -created to complete validation and issue the certificate.`, - Run: func(cmd *cobra.Command, args []string) { - certificateValidateOperation{ - certificateOperation: certificateOperation{acm: acm.New(sess), output: output}, - domainName: args[0], - output: output, - route53: route53.New(sess), - }.execute() - }, -} - -func init() { - certificateCmd.AddCommand(certificateValidateCmd) -} diff --git a/cmd/certificate_validate_test.go b/cmd/certificate_validate_test.go deleted file mode 100644 index fabeb89..0000000 --- a/cmd/certificate_validate_test.go +++ /dev/null @@ -1,431 +0,0 @@ -package cmd - -import ( - "errors" - "testing" - - "github.com/golang/mock/gomock" - "github.com/jpignata/fargate/acm" - acmclient "github.com/jpignata/fargate/acm/mock/client" - "github.com/jpignata/fargate/cmd/mock" - "github.com/jpignata/fargate/route53" - route53client "github.com/jpignata/fargate/route53/mock/client" -) - -func TestCertificateValidateOperation(t *testing.T) { - resourceRecordType := "CNAME" - resourceRecordName := "_beeed67ae3f2d83f6cd3e19a8064947b.staging.example.com" - resourceRecordValue := "_6ddc33cd42c3fe3d5eca4cb075013a0a.acm-validations.aws." - - hostedZones := route53.HostedZones{ - route53.HostedZone{ - Name: "example.com.", - ID: "Z2FDTNDATAQYW2", - }, - } - certificates := acm.Certificates{ - acm.Certificate{ - ARN: "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012", - DomainName: "example.com", - Status: "PENDING_VALIDATION", - Type: "AMAZON_ISSUED", - Validations: []acm.CertificateValidation{ - acm.CertificateValidation{ - Status: "PENDING_VALIDATION", - DomainName: "example.com", - ResourceRecord: acm.CertificateResourceRecord{ - Name: resourceRecordName, - Type: resourceRecordType, - Value: resourceRecordValue, - }, - }, - }, - }, - } - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockRoute53Client := route53client.NewMockClient(mockCtrl) - mockACMClient := acmclient.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - createResourceRecordInput := route53.CreateResourceRecordInput{ - HostedZoneID: hostedZones[0].ID, - RecordType: resourceRecordType, - Name: resourceRecordName, - Value: resourceRecordValue, - } - - mockACMClient.EXPECT().ListCertificates().Return(certificates, nil) - mockACMClient.EXPECT().InflateCertificate(gomock.Any()).Return(nil) - mockRoute53Client.EXPECT().ListHostedZones().Return(hostedZones, nil) - mockRoute53Client.EXPECT().CreateResourceRecord(createResourceRecordInput).Return("/change/1", nil) - - certificateValidateOperation{ - certificateOperation: certificateOperation{ - acm: mockACMClient, - output: mockOutput, - }, - domainName: "example.com", - output: mockOutput, - route53: mockRoute53Client, - }.execute() - - if len(mockOutput.InfoMsgs) == 0 { - t.Error("Expected info output, got none") - } else if mockOutput.InfoMsgs[0] != "[example.com] created validation record" { - t.Errorf("Expected info output == '[example.com] created validation record', got: %s", mockOutput.InfoMsgs[0]) - } -} - -func TestCertificateValidateOperationFindCertificateError(t *testing.T) { - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockRoute53Client := route53client.NewMockClient(mockCtrl) - mockACMClient := acmclient.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockACMClient.EXPECT().ListCertificates().Return(acm.Certificates{}, errors.New("boom")) - - certificateValidateOperation{ - certificateOperation: certificateOperation{ - acm: mockACMClient, - output: mockOutput, - }, - domainName: "example.com", - output: mockOutput, - route53: mockRoute53Client, - }.execute() - - if len(mockOutput.FatalMsgs) == 0 { - t.Error("Expected fatal output, got none") - } else if mockOutput.FatalMsgs[0].Msg != "Could not validate certificate" { - t.Errorf("Expected fatal output == 'Could not validate certificate', got: %+v", mockOutput.FatalMsgs[0]) - } -} - -func TestCertificateValidateOperationListHostedZonesError(t *testing.T) { - certificates := acm.Certificates{ - acm.Certificate{ - ARN: "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012", - DomainName: "example.com", - Status: "PENDING_VALIDATION", - }, - } - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockRoute53Client := route53client.NewMockClient(mockCtrl) - mockACMClient := acmclient.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockACMClient.EXPECT().ListCertificates().Return(certificates, nil) - mockACMClient.EXPECT().InflateCertificate(gomock.Any()).Return(nil) - mockRoute53Client.EXPECT().ListHostedZones().Return(route53.HostedZones{}, errors.New("boom")) - - certificateValidateOperation{ - certificateOperation: certificateOperation{ - acm: mockACMClient, - output: mockOutput, - }, - domainName: "example.com", - output: mockOutput, - route53: mockRoute53Client, - }.execute() - - if len(mockOutput.FatalMsgs) == 0 { - t.Error("Expected fatal output, got none") - } else if mockOutput.FatalMsgs[0].Msg != "Could not validate certificate" { - t.Errorf("Expected fatal output == 'Could not validate certificate', got: %+v", mockOutput.FatalMsgs[0]) - } -} - -func TestCertificateValidateOperationInvalidState(t *testing.T) { - certificates := acm.Certificates{ - acm.Certificate{ - ARN: "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012", - DomainName: "example.com", - Status: "FAILED", - Type: "AMAZON_ISSUED", - Validations: []acm.CertificateValidation{}, - }, - } - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockRoute53Client := route53client.NewMockClient(mockCtrl) - mockACMClient := acmclient.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockACMClient.EXPECT().ListCertificates().Return(certificates, nil) - mockACMClient.EXPECT().InflateCertificate(gomock.Any()).Return(nil) - certificateValidateOperation{ - certificateOperation: certificateOperation{ - acm: mockACMClient, - output: mockOutput, - }, - domainName: "example.com", - output: mockOutput, - route53: mockRoute53Client, - }.execute() - - if len(mockOutput.FatalMsgs) == 0 { - t.Error("Expected fatal output, got none") - t.FailNow() - } - - if mockOutput.FatalMsgs[0].Msg != "Could not validate certificate" { - t.Errorf("Expected fatal output == 'Could not validate certificate', got: %s", mockOutput.FatalMsgs[0]) - } - - if mockOutput.FatalMsgs[0].Errors[0].Error() != "certificate example.com is in state failed" { - t.Errorf("Expected error == 'certificate example.com is in state failed', got: %s", mockOutput.FatalMsgs[0].Errors[0]) - } -} - -func TestCertificateValidateOperationZoneNotFound(t *testing.T) { - certificates := acm.Certificates{ - acm.Certificate{ - ARN: "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012", - DomainName: "example.com", - Status: "PENDING_VALIDATION", - Type: "AMAZON_ISSUED", - Validations: []acm.CertificateValidation{ - acm.CertificateValidation{ - Status: "PENDING_VALIDATION", - DomainName: "example.com", - }, - }, - }, - } - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockRoute53Client := route53client.NewMockClient(mockCtrl) - mockACMClient := acmclient.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockACMClient.EXPECT().ListCertificates().Return(certificates, nil) - mockACMClient.EXPECT().InflateCertificate(gomock.Any()).Return(nil) - mockRoute53Client.EXPECT().ListHostedZones().Return(route53.HostedZones{}, nil) - - certificateValidateOperation{ - certificateOperation: certificateOperation{ - acm: mockACMClient, - output: mockOutput, - }, - domainName: "example.com", - output: mockOutput, - route53: mockRoute53Client, - }.execute() - - if len(mockOutput.WarnMsgs) == 0 { - t.Error("Expected warn output, got none") - } else if mockOutput.WarnMsgs[0] != "[example.com] could not find zone in Amazon Route 53" { - t.Errorf("Expected warn output == '[example.com] could not find zone in Amaozn Route 53', got: %s", mockOutput.WarnMsgs[0]) - } -} - -func TestCertificateValidateOperationValidationSuccess(t *testing.T) { - certificates := acm.Certificates{ - acm.Certificate{ - ARN: "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012", - DomainName: "example.com", - Status: "PENDING_VALIDATION", - Type: "AMAZON_ISSUED", - Validations: []acm.CertificateValidation{ - acm.CertificateValidation{ - Status: "SUCCESS", - DomainName: "example.com", - }, - }, - }, - } - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockRoute53Client := route53client.NewMockClient(mockCtrl) - mockACMClient := acmclient.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockACMClient.EXPECT().ListCertificates().Return(certificates, nil) - mockACMClient.EXPECT().InflateCertificate(gomock.Any()).Return(nil) - mockRoute53Client.EXPECT().ListHostedZones().Return(route53.HostedZones{}, nil) - - certificateValidateOperation{ - certificateOperation: certificateOperation{ - acm: mockACMClient, - output: mockOutput, - }, - domainName: "example.com", - output: mockOutput, - route53: mockRoute53Client, - }.execute() - - if len(mockOutput.InfoMsgs) == 0 { - t.Error("Expected info output, got none") - } else if mockOutput.InfoMsgs[0] != "[example.com] already validated" { - t.Errorf("Expected info output == '[example.com] already validated', got: %s", mockOutput.InfoMsgs[0]) - } -} - -func TestCertificateValidateOperationValidationFailed(t *testing.T) { - certificates := acm.Certificates{ - acm.Certificate{ - ARN: "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012", - DomainName: "example.com", - Status: "PENDING_VALIDATION", - Type: "AMAZON_ISSUED", - Validations: []acm.CertificateValidation{ - acm.CertificateValidation{ - Status: "FAILED", - DomainName: "example.com", - }, - }, - }, - } - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockRoute53Client := route53client.NewMockClient(mockCtrl) - mockACMClient := acmclient.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockACMClient.EXPECT().ListCertificates().Return(certificates, nil) - mockACMClient.EXPECT().InflateCertificate(gomock.Any()).Return(nil) - mockRoute53Client.EXPECT().ListHostedZones().Return(route53.HostedZones{}, nil) - - certificateValidateOperation{ - certificateOperation: certificateOperation{ - acm: mockACMClient, - output: mockOutput, - }, - domainName: "example.com", - output: mockOutput, - route53: mockRoute53Client, - }.execute() - - if len(mockOutput.FatalMsgs) == 0 { - t.Error("Expected fatal output, got none") - } else if mockOutput.FatalMsgs[0].Msg != "[example.com] failed validation" { - t.Errorf("Expected fatal output == '[example.com] failed validation', got: %s", mockOutput.FatalMsgs[0]) - } -} - -func TestCertificateValidateOperationValidationUnknown(t *testing.T) { - certificates := acm.Certificates{ - acm.Certificate{ - ARN: "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012", - DomainName: "example.com", - Status: "PENDING_VALIDATION", - Type: "AMAZON_ISSUED", - Validations: []acm.CertificateValidation{ - acm.CertificateValidation{ - Status: "SOME_UNKNOWN_STATUS", - DomainName: "example.com", - }, - }, - }, - } - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockRoute53Client := route53client.NewMockClient(mockCtrl) - mockACMClient := acmclient.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockACMClient.EXPECT().ListCertificates().Return(certificates, nil) - mockACMClient.EXPECT().InflateCertificate(gomock.Any()).Return(nil) - mockRoute53Client.EXPECT().ListHostedZones().Return(route53.HostedZones{}, nil) - - certificateValidateOperation{ - certificateOperation: certificateOperation{ - acm: mockACMClient, - output: mockOutput, - }, - domainName: "example.com", - output: mockOutput, - route53: mockRoute53Client, - }.execute() - - if len(mockOutput.WarnMsgs) == 0 { - t.Error("Expected warn output, got none") - } else if mockOutput.WarnMsgs[0] != "[example.com] unexpected status: some unknown status" { - t.Errorf("Expected warn output == '[example.com] unexpected status: some unknown status', got: %s", mockOutput.WarnMsgs[0]) - } -} - -func TestCertificateValidateOperationRecordSetError(t *testing.T) { - resourceRecordType := "CNAME" - resourceRecordName := "_beeed67ae3f2d83f6cd3e19a8064947b.staging.example.com" - resourceRecordValue := "_6ddc33cd42c3fe3d5eca4cb075013a0a.acm-validations.aws." - - hostedZones := route53.HostedZones{ - route53.HostedZone{ - Name: "example.com.", - ID: "Z2FDTNDATAQYW2", - }, - } - certificates := acm.Certificates{ - acm.Certificate{ - ARN: "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012", - DomainName: "example.com", - Status: "PENDING_VALIDATION", - Type: "AMAZON_ISSUED", - Validations: []acm.CertificateValidation{ - acm.CertificateValidation{ - Status: "PENDING_VALIDATION", - DomainName: "example.com", - ResourceRecord: acm.CertificateResourceRecord{ - Name: resourceRecordName, - Type: resourceRecordType, - Value: resourceRecordValue, - }, - }, - }, - }, - } - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockRoute53Client := route53client.NewMockClient(mockCtrl) - mockACMClient := acmclient.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - createResourceRecordInput := route53.CreateResourceRecordInput{ - HostedZoneID: hostedZones[0].ID, - RecordType: resourceRecordType, - Name: resourceRecordName, - Value: resourceRecordValue, - } - - mockACMClient.EXPECT().ListCertificates().Return(certificates, nil) - mockACMClient.EXPECT().InflateCertificate(gomock.Any()).Return(nil) - mockRoute53Client.EXPECT().ListHostedZones().Return(hostedZones, nil) - mockRoute53Client.EXPECT().CreateResourceRecord(createResourceRecordInput).Return("", errors.New("boom")) - - certificateValidateOperation{ - certificateOperation: certificateOperation{ - acm: mockACMClient, - output: mockOutput, - }, - domainName: "example.com", - output: mockOutput, - route53: mockRoute53Client, - }.execute() - - if len(mockOutput.FatalMsgs) == 0 { - t.Error("Expected fatal output, got none") - } else if mockOutput.FatalMsgs[0].Msg != "Could not validate certificate" { - t.Errorf("Expected fatal output == 'Could not validate certificate', got: %+v", mockOutput.FatalMsgs[0]) - } -} diff --git a/cmd/lb.go b/cmd/lb.go deleted file mode 100644 index 44c8090..0000000 --- a/cmd/lb.go +++ /dev/null @@ -1,52 +0,0 @@ -package cmd - -import ( - "errors" - - "github.com/jpignata/fargate/elbv2" - "github.com/spf13/cobra" -) - -const defaultTargetGroupFormat = "%s-default" - -type lbOperation struct { - elbv2 elbv2.Client - output Output -} - -func (o lbOperation) findLB(lbName string) (elbv2.LoadBalancer, error) { - o.output.Debug("Finding load balancer[API=elb2 Action=DescribeLoadBalancers]") - loadBalancers, err := o.elbv2.DescribeLoadBalancersByName([]string{lbName}) - - if err != nil { - return elbv2.LoadBalancer{}, err - } - - switch { - case len(loadBalancers) == 0: - return elbv2.LoadBalancer{}, errLBNotFound - case len(loadBalancers) > 1: - return elbv2.LoadBalancer{}, errLBTooManyFound - } - - return loadBalancers[0], nil -} - -var ( - errLBNotFound = errors.New("load balancer not found") - errLBTooManyFound = errors.New("too many load balancers found") - - lbCmd = &cobra.Command{ - Use: "lb", - Short: "Manage load balancers", - Long: `Manage load balancers - -Load balancers distribute incoming traffic between the tasks within a service -for HTTP/HTTPS and TCP applications. HTTP/HTTPS load balancers can route to -multiple services based upon rules you specify when you create a new service.`, - } -) - -func init() { - rootCmd.AddCommand(lbCmd) -} diff --git a/cmd/lb_alias.go b/cmd/lb_alias.go deleted file mode 100644 index b9234b3..0000000 --- a/cmd/lb_alias.go +++ /dev/null @@ -1,81 +0,0 @@ -package cmd - -import ( - "github.com/jpignata/fargate/elbv2" - "github.com/jpignata/fargate/route53" - "github.com/spf13/cobra" -) - -type lbAliasOperation struct { - lbOperation - aliasDomain string - lbName string - output Output - route53 route53.Client -} - -func (o lbAliasOperation) execute() { - loadBalancer, err := o.findLB(o.lbName) - - if err != nil { - o.output.Fatal(err, "Could not alias load balancer") - return - } - - hostedZones, err := o.route53.ListHostedZones() - - if err != nil { - o.output.Fatal(err, "Could not alias load balancer") - return - } - - if hostedZone, ok := hostedZones.FindSuperDomainOf(o.aliasDomain); ok { - o.output.Debug("Creating alias record [API=route53 Action=CreateResourceRecordSet]") - id, err := o.route53.CreateAlias( - route53.CreateAliasInput{ - HostedZoneID: hostedZone.ID, - RecordType: "A", - Name: o.aliasDomain, - Target: loadBalancer.DNSName, - TargetHostedZoneID: loadBalancer.HostedZoneID, - }, - ) - - if err != nil { - o.output.Fatal(err, "Could not alias load balancer") - return - } - - o.output.Debug("Created alias record [ChangeID=%s]", id) - o.output.Info("Created alias record (%s -> %s)", o.aliasDomain, loadBalancer.DNSName) - } else { - o.output.Warn("Could not find hosted zone for %s", o.aliasDomain) - o.output.Say("If you're hosting this domain elsewhere or in another AWS account, please manually create the alias record:", 1) - o.output.Say("%s -> %s", 1, o.aliasDomain, loadBalancer.DNSName) - } -} - -var lbAliasCmd = &cobra.Command{ - Use: "alias ", - Args: cobra.ExactArgs(2), - Short: "Create a load balancer alias record", - Long: `Create a load balancer alias record - -Create an alias record to the load balancer for domains that are hosted within -Amazon Route 53 and within the same AWS account. If you're using another DNS -provider or host your domains in a different account, you will need to manually -create this record. `, - Run: func(cmd *cobra.Command, args []string) { - lbAliasOperation{ - aliasDomain: args[1], - lbName: args[0], - lbOperation: lbOperation{elbv2: elbv2.New(sess), output: output}, - output: output, - route53: route53.New(sess), - }.execute() - }, -} - -func init() { - lbCmd.AddCommand(lbAliasCmd) -} diff --git a/cmd/lb_alias_test.go b/cmd/lb_alias_test.go deleted file mode 100644 index de5ae2c..0000000 --- a/cmd/lb_alias_test.go +++ /dev/null @@ -1,214 +0,0 @@ -package cmd - -import ( - "errors" - "testing" - - "github.com/golang/mock/gomock" - "github.com/jpignata/fargate/cmd/mock" - "github.com/jpignata/fargate/elbv2" - elbv2client "github.com/jpignata/fargate/elbv2/mock/client" - "github.com/jpignata/fargate/route53" - route53client "github.com/jpignata/fargate/route53/mock/client" -) - -var ( - lb = elbv2.LoadBalancer{ - ARN: "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", - DNSName: "my-load-balancer-424835706.us-west-2.elb.amazonaws.com", - HostedZoneID: "Z2P70J7EXAMPLE", - VPCID: "vpc-3ac0fb5f", - Name: "web", - SecurityGroupIDs: []string{"sg-5943793c"}, - Status: "active", - SubnetIDs: []string{"subnet-8360a9e7"}, - Type: "application", - } - hostedZone = route53.HostedZone{ - Name: "example.com.", - ID: "Z111111QQQQQQQ", - } -) - -func TestLBAliasOperation(t *testing.T) { - domainName := "example.com." - lbName := "web" - dnsName := "my-load-balancer-424835706.us-west-2.elb.amazonaws.com" - hostedZoneID := "Z2P70J7EXAMPLE" - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockELBV2Client := elbv2client.NewMockClient(mockCtrl) - mockRoute53Client := route53client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - createAliasInput := route53.CreateAliasInput{ - HostedZoneID: hostedZone.ID, - RecordType: "A", - Name: domainName, - Target: dnsName, - TargetHostedZoneID: hostedZoneID, - } - - operation := lbAliasOperation{ - lbOperation: lbOperation{ - elbv2: mockELBV2Client, - output: mockOutput, - }, - aliasDomain: domainName, - lbName: lbName, - output: mockOutput, - route53: mockRoute53Client, - } - - mockELBV2Client.EXPECT().DescribeLoadBalancersByName([]string{"web"}).Return(elbv2.LoadBalancers{lb}, nil) - mockRoute53Client.EXPECT().ListHostedZones().Return(route53.HostedZones{hostedZone}, nil) - mockRoute53Client.EXPECT().CreateAlias(createAliasInput).Return("ID", nil) - - operation.execute() - - if len(mockOutput.InfoMsgs) == 0 { - t.Errorf("Expected info output from operation, got none") - } -} - -func TestLBAliasOperationFindLBError(t *testing.T) { - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockELBV2Client := elbv2client.NewMockClient(mockCtrl) - mockRoute53Client := route53client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - operation := lbAliasOperation{ - lbOperation: lbOperation{ - elbv2: mockELBV2Client, - output: mockOutput, - }, - aliasDomain: "example.com", - lbName: "web", - output: mockOutput, - route53: mockRoute53Client, - } - - mockELBV2Client.EXPECT().DescribeLoadBalancersByName([]string{"web"}).Return(elbv2.LoadBalancers{}, errors.New("boom")) - - operation.execute() - - if len(mockOutput.FatalMsgs) == 0 { - t.Error("Expected fatal output, got none") - } else if mockOutput.FatalMsgs[0].Msg != "Could not alias load balancer" { - t.Errorf("Expected fatal output == 'Could not alias load balancer', got: %s", mockOutput.FatalMsgs[0]) - } -} - -func TestLBAliasOperationListHostedZonesError(t *testing.T) { - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockELBV2Client := elbv2client.NewMockClient(mockCtrl) - mockRoute53Client := route53client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - operation := lbAliasOperation{ - lbOperation: lbOperation{ - elbv2: mockELBV2Client, - output: mockOutput, - }, - aliasDomain: "example.com", - lbName: "web", - output: mockOutput, - route53: mockRoute53Client, - } - - mockELBV2Client.EXPECT().DescribeLoadBalancersByName([]string{"web"}).Return(elbv2.LoadBalancers{elbv2.LoadBalancer{}}, nil) - mockRoute53Client.EXPECT().ListHostedZones().Return(route53.HostedZones{}, errors.New("boom")) - - operation.execute() - - if len(mockOutput.FatalMsgs) == 0 { - t.Error("Expected fatal output, got none") - } else if mockOutput.FatalMsgs[0].Msg != "Could not alias load balancer" { - t.Errorf("Expected fatal output == 'Could not alias load balancer', got: %s", mockOutput.FatalMsgs[0]) - } -} - -func TestLBAliasOperationAliasError(t *testing.T) { - domainName := "example.com." - lbName := "web" - dnsName := "my-load-balancer-424835706.us-west-2.elb.amazonaws.com" - hostedZoneID := "Z2P70J7EXAMPLE" - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockELBV2Client := elbv2client.NewMockClient(mockCtrl) - mockRoute53Client := route53client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - createAliasInput := route53.CreateAliasInput{ - HostedZoneID: hostedZone.ID, - RecordType: "A", - Name: domainName, - Target: dnsName, - TargetHostedZoneID: hostedZoneID, - } - - operation := lbAliasOperation{ - lbOperation: lbOperation{ - elbv2: mockELBV2Client, - output: mockOutput, - }, - aliasDomain: domainName, - lbName: lbName, - output: mockOutput, - route53: mockRoute53Client, - } - - mockELBV2Client.EXPECT().DescribeLoadBalancersByName([]string{"web"}).Return(elbv2.LoadBalancers{lb}, nil) - mockRoute53Client.EXPECT().ListHostedZones().Return(route53.HostedZones{hostedZone}, nil) - mockRoute53Client.EXPECT().CreateAlias(createAliasInput).Return("", errors.New("boom")) - - operation.execute() - - if len(mockOutput.FatalMsgs) == 0 { - t.Error("Expected fatal output, got none") - } else if mockOutput.FatalMsgs[0].Msg != "Could not alias load balancer" { - t.Errorf("Expected fatal output == 'Could not alias load balancer', got: %s", mockOutput.FatalMsgs[0]) - } -} - -func TestLBAliasOperationHostedZoneNotFound(t *testing.T) { - domainName := "example.com." - lbName := "web" - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockELBV2Client := elbv2client.NewMockClient(mockCtrl) - mockRoute53Client := route53client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - operation := lbAliasOperation{ - lbOperation: lbOperation{ - elbv2: mockELBV2Client, - output: mockOutput, - }, - aliasDomain: domainName, - lbName: lbName, - output: mockOutput, - route53: mockRoute53Client, - } - - mockELBV2Client.EXPECT().DescribeLoadBalancersByName([]string{"web"}).Return(elbv2.LoadBalancers{lb}, nil) - mockRoute53Client.EXPECT().ListHostedZones().Return(route53.HostedZones{}, nil) - - operation.execute() - - if len(mockOutput.WarnMsgs) == 0 { - t.Error("Expected warn output, got none") - } else if mockOutput.WarnMsgs[0] != "Could not find hosted zone for example.com." { - t.Errorf("Expected warn output == 'Could not find hosted zone for example.com.', got: %s", mockOutput.WarnMsgs[0]) - } -} diff --git a/cmd/lb_create.go b/cmd/lb_create.go deleted file mode 100644 index 3cc02af..0000000 --- a/cmd/lb_create.go +++ /dev/null @@ -1,304 +0,0 @@ -package cmd - -import ( - "fmt" - - "github.com/jpignata/fargate/acm" - "github.com/jpignata/fargate/ec2" - "github.com/jpignata/fargate/elbv2" - "github.com/spf13/cobra" -) - -type lbCreateOperation struct { - certificateARNs []string - certificateOperation - elbv2 elbv2.Client - lbType string - lbName string - output Output - ports []Port - vpcOperation -} - -func (o *lbCreateOperation) setPorts(inputPorts []string) []error { - var ( - errs []error - protocols []string - ) - - if len(inputPorts) == 0 { - return append(errs, fmt.Errorf("at least one --port must be specified")) - } - - ports, errs := inflatePorts(inputPorts) - - if len(errs) > 0 { - return errs - } - - for _, port := range ports { - errs = append(errs, validatePort(port)...) - protocols = append(protocols, port.Protocol) - } - - for _, protocol := range protocols { - if protocol == "TCP" { - for _, protocol := range protocols { - if protocol == "HTTP" || protocol == "HTTPS" { - return append(errs, fmt.Errorf("load balancers do not support commingled TCP and HTTP/HTTPS ports")) - } - } - } - } - - if len(errs) == 0 { - o.ports = ports - } - - return errs -} - -func (o *lbCreateOperation) inferType() error { - if len(o.ports) > 0 { - switch o.ports[0].Protocol { - case "HTTP", "HTTPS": - o.lbType = "application" - case "TCP": - o.lbType = "network" - default: - return fmt.Errorf("could not infer type from port settings") - } - } - - return nil -} - -func (o *lbCreateOperation) setCertificateARNs(domainNames []string) []error { - var ( - certificateARNs []string - errs []error - ) - - for _, domainName := range domainNames { - if certificate, err := o.findCertificate(domainName); err == nil { - if certificate.IsIssued() { - certificateARNs = append(certificateARNs, certificate.ARN) - } else { - errs = append(errs, fmt.Errorf("certificate %s is in state %s", domainName, Humanize(certificate.Status))) - } - } else { - switch err { - case errCertificateNotFound: - errs = append(errs, fmt.Errorf("no certificate found for %s", domainName)) - case errCertificateTooManyFound: - errs = append(errs, fmt.Errorf("multiple certificates found for %s", domainName)) - default: - errs = append(errs, fmt.Errorf("could not find certificate ARN: %v", err)) - } - } - } - - if len(errs) == 0 { - o.certificateARNs = certificateARNs - } - - return errs -} - -func (o lbCreateOperation) validate() (errs []error) { - if o.lbName == "" { - errs = append(errs, fmt.Errorf("--name is required")) - } - - if o.lbType == "application" && len(o.subnetIDs) < 2 { - errs = append(errs, fmt.Errorf("HTTP/HTTPS load balancers require two subnet IDs from unique Availability Zones")) - } - - if o.lbType == "network" && len(o.securityGroupIDs) > 0 { - errs = append(errs, fmt.Errorf("security groups can only be specified for HTTP/HTTPS load balancers")) - } - - return -} - -func (o lbCreateOperation) execute() { - defaultTargetGroupName := fmt.Sprintf(defaultTargetGroupFormat, o.lbName) - - loadBalancerARN, err := o.elbv2.CreateLoadBalancer( - elbv2.CreateLoadBalancerParameters{ - Name: o.lbName, - SecurityGroupIDs: o.securityGroupIDs, - SubnetIDs: o.subnetIDs, - Type: o.lbType, - }, - ) - - if err != nil { - o.output.Fatal(err, "Could not create load balancer") - return - } - - o.output.Debug("Creating target group [Name=%s]", defaultTargetGroupName) - defaultTargetGroupARN, err := o.elbv2.CreateTargetGroup( - elbv2.CreateTargetGroupParameters{ - Name: defaultTargetGroupName, - Port: o.ports[0].Number, - Protocol: o.ports[0].Protocol, - VPCID: o.vpcID, - }, - ) - - if err != nil { - o.output.Fatal(err, "Could not create default target group") - return - } - - o.output.Debug("Created target group [ARN=%s]", defaultTargetGroupARN) - - for _, port := range o.ports { - o.output.Debug("Creating listener [Port=%d Protocol=%s]", port.Number, port.Protocol) - listenerARN, err := o.elbv2.CreateListener( - elbv2.CreateListenerParameters{ - CertificateARNs: o.certificateARNs, - DefaultTargetGroupARN: defaultTargetGroupARN, - LoadBalancerARN: loadBalancerARN, - Port: port.Number, - Protocol: port.Protocol, - }, - ) - - if err != nil { - o.output.Fatal(err, "Could not create listener") - return - } - - o.output.Debug("Created listener [ARN=%s]", listenerARN) - } - - o.output.Info("Created load balancer %s", o.lbName) -} - -func newLBCreateOperation( - lbName string, - certificates, ports, securityGroupIDs, subnetIDs []string, - output Output, - acm acm.Client, - ec2 ec2.Client, - elbv2 elbv2.Client, -) (operation lbCreateOperation, errors []error) { - operation = lbCreateOperation{ - certificateOperation: certificateOperation{acm: acm, output: output}, - elbv2: elbv2, - lbName: lbName, - output: output, - vpcOperation: vpcOperation{ec2: ec2, output: output}, - } - - if errs := operation.setPorts(ports); len(errs) > 0 { - errors = append(errors, errs...) - } - - if err := operation.inferType(); err != nil { - errors = append(errors, err) - } - - if len(certificates) > 0 { - if errs := operation.setCertificateARNs(certificates); len(errs) > 0 { - errors = append(errors, errs...) - } - } - - if len(subnetIDs) > 0 { - if err := operation.setSubnetIDs(subnetIDs); err != nil { - errors = append(errors, err) - } - } else { - if err := operation.setDefaultSubnetIDs(); err != nil { - errors = append(errors, err) - } - } - - if len(securityGroupIDs) > 0 { - operation.setSecurityGroupIDs(securityGroupIDs) - } else if operation.lbType == "application" { - if err := operation.setDefaultSecurityGroupID(); err != nil { - errors = append(errors, err) - } - } - - errors = append(errors, operation.validate()...) - - return -} - -var lbCreateCmd = &cobra.Command{ - Use: "create --port ", - Args: cobra.ExactArgs(1), - Short: "Create a load balancer", - Long: `Create a load balancer - -At least one port must be specified for the load balancer listener via the ---port flag and a port expression of protocol:port-number. For example, if you -wanted an HTTP load balancer to listen on port 80, you would specify HTTP:80. -Valid protocols are HTTP, HTTPS, and TCP. You can specify multiple listeners by -passing the --port flag with a port expression multiple times. You cannot mix -TCP ports with HTTP/HTTPS ports on a single load balancer. - -You can optionally include certificates to secure HTTPS ports by passed the ---certificate flag along with a certificate name. This option can be specified -multiple times to add additional certificates to a single load balancer which -uses Service Name Identification (SNI) to select the appropriate certificate -for the request. - -By default, the load balancer will be created in the default VPC and attached -to the default VPC subnets for each availability zone. You can override this by -specifying explicit subnets by passing the --subnet-id flag with a subnet ID. -HTTP/HTTPS load balancers require at least two subnets attached while a TCP -load balancer requires only one. You may only specify a single subnet from each -availability zone. - -Security groups can optionally be specified for HTTP/HTTPS load balancers by -passing the --security-group-id flag with a security group ID. To add multiple -security groups, pass --security-group-id with a security group ID multiple -times. If --security-group-id is omitted, a permissive security group will be -applied to the load balancer.`, - Run: func(cmd *cobra.Command, args []string) { - operation, errs := newLBCreateOperation( - args[0], - lbCreateFlags.certificates, - lbCreateFlags.ports, - lbCreateFlags.securityGroupIDs, - lbCreateFlags.subnetIDs, - output, - acm.New(sess), - ec2.New(sess), - elbv2.New(sess), - ) - - if len(errs) > 0 { - output.Fatals(errs, "Invalid command line flags") - return - } - - operation.execute() - }} - -var lbCreateFlags struct { - certificates []string - ports []string - securityGroupIDs []string - subnetIDs []string -} - -func init() { - lbCreateCmd.Flags().StringSliceVarP(&lbCreateFlags.certificates, "certificate", "c", []string{}, - "Name of certificate to add (can be specified multiple times)") - lbCreateCmd.Flags().StringSliceVarP(&lbCreateFlags.ports, "port", "p", []string{}, - "Port to listen on [e.g., 80, 443, http:8080, https:8443, tcp:1935] (can be specified multiple times)") - lbCreateCmd.Flags().StringSliceVar(&lbCreateFlags.securityGroupIDs, "security-group-id", []string{}, - "ID of a security group to apply to the load balancer (can be specified multiple times)") - lbCreateCmd.Flags().StringSliceVar(&lbCreateFlags.subnetIDs, "subnet-id", []string{}, - "ID of a subnet to place the load balancer (can be specified multiple times)") - - lbCmd.AddCommand(lbCreateCmd) -} diff --git a/cmd/lb_create_test.go b/cmd/lb_create_test.go deleted file mode 100644 index 7372756..0000000 --- a/cmd/lb_create_test.go +++ /dev/null @@ -1,1065 +0,0 @@ -package cmd - -import ( - "errors" - "reflect" - "testing" - - "github.com/golang/mock/gomock" - "github.com/jpignata/fargate/acm" - acmclient "github.com/jpignata/fargate/acm/mock/client" - "github.com/jpignata/fargate/cmd/mock" - ec2client "github.com/jpignata/fargate/ec2/mock/client" - "github.com/jpignata/fargate/elbv2" - elbv2client "github.com/jpignata/fargate/elbv2/mock/client" -) - -var ( - certificates = acm.Certificates{ - acm.Certificate{ - DomainName: "example.com", - ARN: "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012", - }, - } -) - -func TestLBCreateOperation(t *testing.T) { - lbName := "lb" - lbType := "application" - lbARN := "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/lb/50dc6c495c0c9188" - tgARN := "arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/my-targets/73e2d6bc24d8a067" - listenerARN := "arn:aws:elasticloadbalancing:us-east-1:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2" - subnetIDs := []string{"subnet-1234567", "subnet-abcdef8"} - securityGroupIDs := []string{"sg-1234567"} - vpcID := "vpc-1234567" - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockELBV2Client := elbv2client.NewMockClient(mockCtrl) - mockACMClient := acmclient.NewMockClient(mockCtrl) - mockEC2Client := ec2client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - createLoadBalancerInput := elbv2.CreateLoadBalancerParameters{ - Name: lbName, - SecurityGroupIDs: securityGroupIDs, - SubnetIDs: subnetIDs, - Type: lbType, - } - createTargetGroupInput := elbv2.CreateTargetGroupParameters{ - Name: "lb-default", - Port: 80, - Protocol: "HTTP", - VPCID: vpcID, - } - createListenerInput := elbv2.CreateListenerParameters{ - DefaultTargetGroupARN: tgARN, - LoadBalancerARN: lbARN, - Port: 80, - Protocol: "HTTP", - } - - mockELBV2Client.EXPECT().CreateLoadBalancer(createLoadBalancerInput).Return(lbARN, nil) - mockELBV2Client.EXPECT().CreateTargetGroup(createTargetGroupInput).Return(tgARN, nil) - mockELBV2Client.EXPECT().CreateListener(createListenerInput).Return(listenerARN, nil) - - operation := lbCreateOperation{ - certificateOperation: certificateOperation{ - acm: mockACMClient, - }, - vpcOperation: vpcOperation{ - ec2: mockEC2Client, - securityGroupIDs: securityGroupIDs, - subnetIDs: subnetIDs, - vpcID: vpcID, - }, - elbv2: mockELBV2Client, - lbType: lbType, - lbName: lbName, - output: mockOutput, - ports: []Port{Port{80, "HTTP"}}, - } - - operation.execute() - - if len(mockOutput.InfoMsgs) != 1 { - t.Fatalf("expected 1 info msg, got: %d", len(mockOutput.InfoMsgs)) - } - - if expected, got := "Created load balancer lb", mockOutput.InfoMsgs[0]; expected != got { - t.Errorf("expected: %s, got: %s", expected, got) - } -} - -func TestLBCreateOperationLBError(t *testing.T) { - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockELBV2Client := elbv2client.NewMockClient(mockCtrl) - mockACMClient := acmclient.NewMockClient(mockCtrl) - mockEC2Client := ec2client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockELBV2Client.EXPECT().CreateLoadBalancer(gomock.Any()).Return("", errors.New("boom")) - - operation := lbCreateOperation{ - certificateOperation: certificateOperation{ - acm: mockACMClient, - }, - vpcOperation: vpcOperation{ - ec2: mockEC2Client, - }, - elbv2: mockELBV2Client, - lbType: "application", - lbName: "web", - output: mockOutput, - ports: []Port{Port{80, "HTTP"}}, - } - - operation.execute() - - if len(mockOutput.FatalMsgs) != 1 { - t.Fatalf("expected 1 fatal msg, got: %d", len(mockOutput.FatalMsgs)) - } - - if expected, got := "Could not create load balancer", mockOutput.FatalMsgs[0].Msg; expected != got { - t.Errorf("expected: %s, got: %s", expected, got) - } -} - -func TestLBCreateOperationTargetGroupError(t *testing.T) { - lbName := "lb" - lbType := "application" - lbARN := "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/lb/50dc6c495c0c9188" - subnetIDs := []string{"subnet-1234567", "subnet-abcdef8"} - securityGroupIDs := []string{"sg-1234567"} - vpcID := "vpc-1234567" - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockELBV2Client := elbv2client.NewMockClient(mockCtrl) - mockACMClient := acmclient.NewMockClient(mockCtrl) - mockEC2Client := ec2client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - createLoadBalancerInput := elbv2.CreateLoadBalancerParameters{ - Name: lbName, - SecurityGroupIDs: securityGroupIDs, - SubnetIDs: subnetIDs, - Type: lbType, - } - createTargetGroupInput := elbv2.CreateTargetGroupParameters{ - Name: "lb-default", - Port: 80, - Protocol: "HTTP", - VPCID: vpcID, - } - - mockELBV2Client.EXPECT().CreateLoadBalancer(createLoadBalancerInput).Return(lbARN, nil) - mockELBV2Client.EXPECT().CreateTargetGroup(createTargetGroupInput).Return("", errors.New("boom")) - - operation := lbCreateOperation{ - certificateOperation: certificateOperation{ - acm: mockACMClient, - }, - vpcOperation: vpcOperation{ - ec2: mockEC2Client, - securityGroupIDs: securityGroupIDs, - subnetIDs: subnetIDs, - vpcID: vpcID, - }, - elbv2: mockELBV2Client, - lbType: lbType, - lbName: lbName, - output: mockOutput, - ports: []Port{Port{80, "HTTP"}}, - } - - operation.execute() - - if len(mockOutput.FatalMsgs) != 1 { - t.Fatalf("expected 1 fatal msg, got: %d", len(mockOutput.FatalMsgs)) - } - - if expected, got := "Could not create default target group", mockOutput.FatalMsgs[0].Msg; expected != got { - t.Errorf("expected: %s, got: %s", expected, got) - } -} - -func TestLBCreateOperationListenerError(t *testing.T) { - lbName := "lb" - lbType := "application" - lbARN := "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/lb/50dc6c495c0c9188" - tgARN := "arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/my-targets/73e2d6bc24d8a067" - subnetIDs := []string{"subnet-1234567", "subnet-abcdef8"} - securityGroupIDs := []string{"sg-1234567"} - vpcID := "vpc-1234567" - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockELBV2Client := elbv2client.NewMockClient(mockCtrl) - mockACMClient := acmclient.NewMockClient(mockCtrl) - mockEC2Client := ec2client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - createLoadBalancerInput := elbv2.CreateLoadBalancerParameters{ - Name: lbName, - SecurityGroupIDs: securityGroupIDs, - SubnetIDs: subnetIDs, - Type: lbType, - } - createTargetGroupInput := elbv2.CreateTargetGroupParameters{ - Name: "lb-default", - Port: 80, - Protocol: "HTTP", - VPCID: vpcID, - } - createListenerInput := elbv2.CreateListenerParameters{ - DefaultTargetGroupARN: tgARN, - LoadBalancerARN: lbARN, - Port: 80, - Protocol: "HTTP", - } - - mockELBV2Client.EXPECT().CreateLoadBalancer(createLoadBalancerInput).Return(lbARN, nil) - mockELBV2Client.EXPECT().CreateTargetGroup(createTargetGroupInput).Return(tgARN, nil) - mockELBV2Client.EXPECT().CreateListener(createListenerInput).Return("", errors.New("boom")) - - operation := lbCreateOperation{ - certificateOperation: certificateOperation{ - acm: mockACMClient, - }, - vpcOperation: vpcOperation{ - ec2: mockEC2Client, - securityGroupIDs: securityGroupIDs, - subnetIDs: subnetIDs, - vpcID: vpcID, - }, - elbv2: mockELBV2Client, - lbType: lbType, - lbName: lbName, - output: mockOutput, - ports: []Port{Port{80, "HTTP"}}, - } - - operation.execute() - - if len(mockOutput.FatalMsgs) != 1 { - t.Fatalf("expected 1 fatal msg, got: %d", len(mockOutput.FatalMsgs)) - } - - if expected, got := "Could not create listener", mockOutput.FatalMsgs[0].Msg; expected != got { - t.Errorf("expected: %s, got: %s", expected, got) - } -} - -func TestSetPorts(t *testing.T) { - tests := []struct { - inputPorts []string - outputPorts []Port - }{ - {[]string{"80"}, []Port{Port{80, "HTTP"}}}, - {[]string{"http:80"}, []Port{Port{80, "HTTP"}}}, - {[]string{"hTTp:80"}, []Port{Port{80, "HTTP"}}}, - {[]string{"HTTP:80"}, []Port{Port{80, "HTTP"}}}, - {[]string{"443"}, []Port{Port{443, "HTTPS"}}}, - {[]string{"https:443"}, []Port{Port{443, "HTTPS"}}}, - {[]string{"hTTpS:443"}, []Port{Port{443, "HTTPS"}}}, - {[]string{"HTTPS:443"}, []Port{Port{443, "HTTPS"}}}, - {[]string{"8080"}, []Port{Port{8080, "TCP"}}}, - {[]string{"tcp:8080"}, []Port{Port{8080, "TCP"}}}, - {[]string{"HTTP:8080"}, []Port{Port{8080, "HTTP"}}}, - {[]string{"80", "443"}, []Port{Port{80, "HTTP"}, Port{443, "HTTPS"}}}, - {[]string{"tcp:3386", "TCP:5000"}, []Port{Port{3386, "TCP"}, Port{5000, "TCP"}}}, - } - - for _, test := range tests { - operation := lbCreateOperation{} - errs := operation.setPorts(test.inputPorts) - - if len(errs) > 0 { - t.Fatalf("expected no errors, got: %v", errs) - } - - if !reflect.DeepEqual(operation.ports, test.outputPorts) { - t.Errorf("expected ports %v, got: %v", test.outputPorts, operation.ports) - } - } -} - -func TestSetPortsMissing(t *testing.T) { - o := lbCreateOperation{} - errs := o.setPorts([]string{}) - - if len(errs) != 1 { - t.Fatalf("expected error, got none") - } - - if expected := errors.New("at least one --port must be specified"); errs[0].Error() != expected.Error() { - t.Errorf("expected error %v, got: %v", expected, errs[0]) - } -} - -func TestSetPortsCommingled(t *testing.T) { - o := lbCreateOperation{} - errs := o.setPorts([]string{"HTTP:80", "TCP:3386"}) - - if len(errs) != 1 { - t.Fatalf("expected error, got none") - } - - if expected := errors.New("load balancers do not support commingled TCP and HTTP/HTTPS ports"); errs[0].Error() != expected.Error() { - t.Errorf("expected error %v, got: %v", expected, errs[0]) - } -} - -func TestSetPortsCantInflate(t *testing.T) { - o := lbCreateOperation{} - errs := o.setPorts([]string{"bargle"}) - - if len(errs) != 1 { - t.Fatalf("expected error, got none") - } - - if expected := errors.New("could not parse port number from bargle"); errs[0].Error() != expected.Error() { - t.Errorf("expected error %v, got: %v", expected, errs[0]) - } -} - -func TestSetPortsInvalidNumber(t *testing.T) { - o := lbCreateOperation{} - errs := o.setPorts([]string{"555555555"}) - - if len(errs) != 1 { - t.Fatalf("expected error, got none") - } - - if expected := errors.New("invalid port 555555555 (specify within 1 - 65535)"); errs[0].Error() != expected.Error() { - t.Errorf("expected error %v, got: %v", expected, errs[0]) - } -} - -func TestSetPortsInvalidProtocol(t *testing.T) { - o := lbCreateOperation{} - errs := o.setPorts([]string{"SMTP:25"}) - - if len(errs) != 1 { - t.Fatalf("expected error, got none") - } - - if expected := errors.New("invalid protocol SMTP (specify TCP, HTTP, or HTTPS)"); errs[0].Error() != expected.Error() { - t.Errorf("expected error %v, got: %v", expected, errs[0]) - } -} - -func TestInferType(t *testing.T) { - tests := []struct { - inputPorts []string - lbType string - }{ - {[]string{"80"}, "application"}, - {[]string{"443"}, "application"}, - {[]string{"80", "443"}, "application"}, - {[]string{"8080"}, "network"}, - {[]string{"1"}, "network"}, - {[]string{"5000", "2112"}, "network"}, - } - - for _, test := range tests { - o := lbCreateOperation{} - - o.setPorts(test.inputPorts) - err := o.inferType() - - if err != nil { - t.Fatalf("expected no error, got: %v", err) - } - - if o.lbType != test.lbType { - t.Errorf("expected: %s, got: %s", test.lbType, o.lbType) - } - } -} - -func TestInferTypeNoPorts(t *testing.T) { - o := lbCreateOperation{} - err := o.inferType() - - if err != nil { - t.Errorf("expected no error, got: %v", err) - } - - if o.lbType != "" { - t.Errorf("expected type to not be inferred, got: %s", o.lbType) - } -} - -func TestInferTypeInvalidProtocol(t *testing.T) { - o := lbCreateOperation{ - ports: []Port{Port{80, "INTERWEB"}}, - } - err := o.inferType() - - if err == nil { - t.Fatalf("expected error, got none") - } - - if expected := "could not infer type from port settings"; err.Error() != expected { - t.Errorf("expected error %s, got: %v", expected, err) - } -} - -func TestSetCertificateARNs(t *testing.T) { - mockOutput := &mock.Output{} - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - domainName := "example.com" - certificateARN := "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012" - certificate := acm.Certificate{ - ARN: certificateARN, - DomainName: domainName, - Status: "ISSUED", - } - certificateList := acm.Certificates{certificate} - mockClient := acmclient.NewMockClient(mockCtrl) - - mockClient.EXPECT().ListCertificates().Return(certificateList, nil) - mockClient.EXPECT().InflateCertificate(gomock.Any()).Return(nil) - - o := lbCreateOperation{ - certificateOperation: certificateOperation{ - acm: mockClient, - output: mockOutput, - }, - } - - errs := o.setCertificateARNs([]string{domainName}) - - if len(errs) > 0 { - t.Fatalf("expected no errors, got: %v", errs) - } - - if len(o.certificateARNs) != 1 { - t.Fatalf("expected 1 certificate ARN, got: %d", len(o.certificateARNs)) - } - - if o.certificateARNs[0] != certificateARN { - t.Errorf("expected certificate ARN %s, got: %s", certificateARN, o.certificateARNs[0]) - } -} - -func TestSetCertificateARNsNotIssued(t *testing.T) { - mockOutput := &mock.Output{} - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - domainName := "example.com" - certificateARN := "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012" - certificate := acm.Certificate{ - ARN: certificateARN, - DomainName: domainName, - Status: "FAILED", - } - certificateList := acm.Certificates{certificate} - mockClient := acmclient.NewMockClient(mockCtrl) - - mockClient.EXPECT().ListCertificates().Return(certificateList, nil) - mockClient.EXPECT().InflateCertificate(gomock.Any()).Return(nil) - - o := lbCreateOperation{ - certificateOperation: certificateOperation{ - acm: mockClient, - output: mockOutput, - }, - } - - errs := o.setCertificateARNs([]string{domainName}) - - if len(errs) == 0 { - t.Fatalf("expected 1 errors, got none") - } - - if expected := "certificate example.com is in state failed"; errs[0].Error() != expected { - t.Fatalf("expected error %s, got: %v", expected, errs[0]) - } - - if len(o.certificateARNs) > 0 { - t.Fatalf("expected no certificate ARNs, got: %v", o.certificateARNs) - } -} - -func TestSetCertificateARNsNotFound(t *testing.T) { - mockOutput := &mock.Output{} - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := acmclient.NewMockClient(mockCtrl) - - mockClient.EXPECT().ListCertificates().Return(acm.Certificates{}, nil) - - o := lbCreateOperation{ - certificateOperation: certificateOperation{ - acm: mockClient, - output: mockOutput, - }, - } - - errs := o.setCertificateARNs([]string{"example.com"}) - - if len(errs) == 0 { - t.Fatalf("expected 1 errors, got none") - } - - if expected := "no certificate found for example.com"; errs[0].Error() != expected { - t.Fatalf("expected error %s, got: %v", expected, errs[0]) - } - - if len(o.certificateARNs) > 0 { - t.Fatalf("expected no certificate ARNs, got: %v", o.certificateARNs) - } -} - -func TestSetCertificateARNsTooManyFound(t *testing.T) { - mockOutput := &mock.Output{} - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - certificate := acm.Certificate{DomainName: "example.com"} - certificateList := acm.Certificates{certificate, certificate} - mockClient := acmclient.NewMockClient(mockCtrl) - - mockClient.EXPECT().ListCertificates().Return(certificateList, nil) - - o := lbCreateOperation{ - certificateOperation: certificateOperation{ - acm: mockClient, - output: mockOutput, - }, - } - - errs := o.setCertificateARNs([]string{"example.com"}) - - if len(errs) == 0 { - t.Fatalf("expected 1 errors, got none") - } - - if expected := "multiple certificates found for example.com"; errs[0].Error() != expected { - t.Fatalf("expected error %s, got: %v", expected, errs[0]) - } - - if len(o.certificateARNs) > 0 { - t.Fatalf("expected no certificate ARNs, got: %v", o.certificateARNs) - } -} - -func TestSetCertificateARNsError(t *testing.T) { - mockOutput := &mock.Output{} - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := acmclient.NewMockClient(mockCtrl) - - mockClient.EXPECT().ListCertificates().Return(acm.Certificates{}, errors.New("boom")) - - o := lbCreateOperation{ - certificateOperation: certificateOperation{ - acm: mockClient, - output: mockOutput, - }, - } - - errs := o.setCertificateARNs([]string{"example.com"}) - - if len(errs) == 0 { - t.Fatalf("expected 1 errors, got none") - } - - if expected := "could not find certificate ARN: boom"; errs[0].Error() != expected { - t.Fatalf("expected error %s, got: %v", expected, errs[0]) - } - - if len(o.certificateARNs) > 0 { - t.Fatalf("expected no certificate ARNs, got: %v", o.certificateARNs) - } -} - -func TestValidate(t *testing.T) { - o := lbCreateOperation{ - lbName: "web", - lbType: "application", - vpcOperation: vpcOperation{ - subnetIDs: []string{"subnet-abcdef", "subnet-1234567"}, - }, - } - - errs := o.validate() - - if len(errs) > 0 { - t.Errorf("expected no errors, got: %v", errs) - } -} - -func TestValidateNoName(t *testing.T) { - o := lbCreateOperation{ - lbType: "application", - vpcOperation: vpcOperation{ - subnetIDs: []string{"subnet-abcdef", "subnet-1234567"}, - }, - } - - errs := o.validate() - - if len(errs) != 1 { - t.Fatalf("expected 1 error, got: %v", errs) - } - - if expected := "--name is required"; errs[0].Error() != expected { - t.Errorf("expected: %s, got: %v", expected, errs) - } -} - -func TestValidateApplicationLBNoSubnets(t *testing.T) { - o := lbCreateOperation{ - lbName: "web", - lbType: "application", - } - - errs := o.validate() - - if len(errs) != 1 { - t.Fatalf("expected 1 error, got: %v", errs) - } - - if expected := "HTTP/HTTPS load balancers require two subnet IDs from unique Availability Zones"; errs[0].Error() != expected { - t.Errorf("expected: %s, got: %v", expected, errs) - } -} - -func TestValidateNetworkLBWithSGs(t *testing.T) { - o := lbCreateOperation{ - lbName: "web", - lbType: "network", - vpcOperation: vpcOperation{ - securityGroupIDs: []string{"sg-abcdef"}, - }, - } - - errs := o.validate() - - if len(errs) != 1 { - t.Fatalf("expected 1 error, got: %v", errs) - } - - if expected := "security groups can only be specified for HTTP/HTTPS load balancers"; errs[0].Error() != expected { - t.Errorf("expected: %s, got: %v", expected, errs) - } -} - -func TestNewLBCreateOperation(t *testing.T) { - domainName := "example.com" - certificateARN := "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012" - certificate := acm.Certificate{ - ARN: certificateARN, - DomainName: domainName, - Status: "ISSUED", - } - mockOutput := &mock.Output{} - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockEC2 := ec2client.NewMockClient(mockCtrl) - mockACM := acmclient.NewMockClient(mockCtrl) - mockELBV2 := elbv2client.NewMockClient(mockCtrl) - - mockEC2.EXPECT().GetSubnetVPCID("subnet-1234567").Return("vpc-1234567", nil) - mockACM.EXPECT().ListCertificates().Return(acm.Certificates{certificate}, nil) - mockACM.EXPECT().InflateCertificate(gomock.Any()).Return(nil) - - o, errs := newLBCreateOperation( - "web", - []string{"example.com"}, - []string{"80", "443"}, - []string{"sg-abcdef"}, - []string{"subnet-1234567", "subnet-abcdef"}, - mockOutput, - mockACM, - mockEC2, - mockELBV2, - ) - - if len(errs) > 0 { - t.Fatalf("expected no error, got: %v", errs) - } - - if o.acm != mockACM { - t.Errorf("acm client not set") - } - - if o.ec2 != mockEC2 { - t.Errorf("ec2 client not set") - } - - if o.elbv2 != mockELBV2 { - t.Errorf("elbv2 client not set") - } - - if o.output != mockOutput { - t.Errorf("output not set") - } - - if o.lbName != "web" { - t.Errorf("expected lbName == web, got: %s", o.lbName) - } - - if len(o.ports) != 2 { - t.Fatalf("expected 2 ports, got: %d", len(o.ports)) - } - - if o.ports[0].Number != 80 || o.ports[0].Protocol != "HTTP" { - t.Errorf("expected port HTTP:80, got: %v", o.ports) - } - - if o.ports[1].Number != 443 || o.ports[1].Protocol != "HTTPS" { - t.Errorf("expected port HTTPS:443, got: %v", o.ports) - } - - if o.lbType != "application" { - t.Errorf("expected lbType == application, got: %s", o.lbType) - } - - if o.certificateARNs[0] != certificateARN { - t.Errorf("expected certificate ARN %s, got: %s", certificateARN, o.certificateARNs) - } - - if o.securityGroupIDs[0] != "sg-abcdef" { - t.Errorf("expected security group ID == sg-abcdef, got: %v", o.securityGroupIDs) - } - - if o.subnetIDs[0] != "subnet-1234567" || o.subnetIDs[1] != "subnet-abcdef" { - t.Errorf("expected subnet ID == subnet-1234567, subnet-abcdef, got: %v", o.subnetIDs) - } -} - -func TestNewLBCreateOperationDefaults(t *testing.T) { - mockOutput := &mock.Output{} - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockEC2 := ec2client.NewMockClient(mockCtrl) - mockACM := acmclient.NewMockClient(mockCtrl) - mockELBV2 := elbv2client.NewMockClient(mockCtrl) - - mockEC2.EXPECT().GetSubnetVPCID("subnet-1234567").Return("vpc-1234567", nil) - mockEC2.EXPECT().GetDefaultSubnetIDs().Return([]string{"subnet-1234567", "subnet-abcdef"}, nil) - mockEC2.EXPECT().GetDefaultSecurityGroupID().Return("sg-abcdef", nil) - - o, errs := newLBCreateOperation( - "web", - []string{}, - []string{"80"}, - []string{}, - []string{}, - mockOutput, - mockACM, - mockEC2, - mockELBV2, - ) - - if len(errs) > 0 { - t.Fatalf("expected no error, got: %v", errs) - } - - if o.securityGroupIDs[0] != "sg-abcdef" { - t.Errorf("expected security group ID == sg-abcdef, got: %v", o.securityGroupIDs) - } - - if o.subnetIDs[0] != "subnet-1234567" || o.subnetIDs[1] != "subnet-abcdef" { - t.Errorf("expected subnet ID == subnet-1234567, subnet-abcdef, got: %v", o.subnetIDs) - } -} - -func TestNewLBCreateOperationDefaultsWithSGCreate(t *testing.T) { - mockOutput := &mock.Output{} - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockEC2 := ec2client.NewMockClient(mockCtrl) - mockACM := acmclient.NewMockClient(mockCtrl) - mockELBV2 := elbv2client.NewMockClient(mockCtrl) - - mockEC2.EXPECT().GetSubnetVPCID("subnet-1234567").Return("vpc-1234567", nil) - mockEC2.EXPECT().GetDefaultSubnetIDs().Return([]string{"subnet-1234567", "subnet-abcdef"}, nil) - mockEC2.EXPECT().GetDefaultSecurityGroupID().Return("", nil) - mockEC2.EXPECT().CreateDefaultSecurityGroup().Return("sg-abcdef", nil) - mockEC2.EXPECT().AuthorizeAllSecurityGroupIngress("sg-abcdef").Return(nil) - - o, errs := newLBCreateOperation( - "web", - []string{}, - []string{"80"}, - []string{}, - []string{}, - mockOutput, - mockACM, - mockEC2, - mockELBV2, - ) - - if len(errs) > 0 { - t.Fatalf("expected no error, got: %v", errs) - } - - if o.securityGroupIDs[0] != "sg-abcdef" { - t.Errorf("expected security group ID == sg-abcdef, got: %v", o.securityGroupIDs) - } - - if o.subnetIDs[0] != "subnet-1234567" || o.subnetIDs[1] != "subnet-abcdef" { - t.Errorf("expected subnet ID == subnet-1234567, subnet-abcdef, got: %v", o.subnetIDs) - } -} - -func TestNewLBCreateOperationNoName(t *testing.T) { - mockOutput := &mock.Output{} - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - ec2 := ec2client.NewMockClient(mockCtrl) - ec2.EXPECT().GetSubnetVPCID(gomock.Any()).Return("vpc-1234567", nil) - - _, err := newLBCreateOperation( - "", - []string{}, - []string{"80"}, - []string{"sg-abcdef"}, - []string{"subnet-abcdef", "subnet-1234567"}, - mockOutput, - acmclient.NewMockClient(mockCtrl), - ec2, - elbv2client.NewMockClient(mockCtrl), - ) - - if err == nil { - t.Fatalf("expected errors, got none") - } - - if expected := "--name is required"; err[0].Error() != expected { - t.Errorf("expected: %s, got: %v", expected, err) - } -} - -func TestNewLBCreateOperationNoPort(t *testing.T) { - mockOutput := &mock.Output{} - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockEC2 := ec2client.NewMockClient(mockCtrl) - - mockEC2.EXPECT().GetDefaultSubnetIDs().Return([]string{"subnet-1234567"}, nil) - mockEC2.EXPECT().GetSubnetVPCID("subnet-1234567").Return("vpc-1234567", nil) - - _, err := newLBCreateOperation( - "web", - []string{}, - []string{}, - []string{}, - []string{}, - mockOutput, - acmclient.NewMockClient(mockCtrl), - mockEC2, - elbv2client.NewMockClient(mockCtrl), - ) - - if err == nil { - t.Fatalf("expected errors, got none") - } - - if expected := "at least one --port must be specified"; err[0].Error() != expected { - t.Errorf("expected: %s, got: %v", expected, err) - } -} - -func TestNewLBCreateOperationDefaultSubnets(t *testing.T) { - mockOutput := &mock.Output{} - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockEC2 := ec2client.NewMockClient(mockCtrl) - - mockEC2.EXPECT().GetDefaultSubnetIDs().Return([]string{"subnet-1234567"}, nil) - mockEC2.EXPECT().GetSubnetVPCID("subnet-1234567").Return("", errors.New("boom")) - - _, err := newLBCreateOperation( - "web", - []string{}, - []string{"445"}, - []string{}, - []string{}, - mockOutput, - acmclient.NewMockClient(mockCtrl), - mockEC2, - elbv2client.NewMockClient(mockCtrl), - ) - - if err == nil { - t.Fatalf("expected errors, got none") - } - - if expected := "boom"; err[0].Error() != expected { - t.Errorf("expected: %s, got: %v", expected, err) - } -} - -func TestNewLBCreateOperationDescribeSubnetsError(t *testing.T) { - mockOutput := &mock.Output{} - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - ec2 := ec2client.NewMockClient(mockCtrl) - ec2.EXPECT().GetSubnetVPCID(gomock.Any()).Return("", errors.New("boom")) - - _, err := newLBCreateOperation( - "web", - []string{}, - []string{"80"}, - []string{"sg-abcdef"}, - []string{"subnet-abcdef", "subnet-1234567"}, - mockOutput, - acmclient.NewMockClient(mockCtrl), - ec2, - elbv2client.NewMockClient(mockCtrl), - ) - - if err == nil { - t.Fatalf("expected errors, got none") - } - - if expected := "boom"; err[0].Error() != expected { - t.Errorf("expected: %s, got: %v", expected, err) - } -} - -func TestNewLBCreateOperationInvalidProtocol(t *testing.T) { - mockOutput := &mock.Output{} - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - ec2 := ec2client.NewMockClient(mockCtrl) - ec2.EXPECT().GetSubnetVPCID(gomock.Any()).Return("vpc-1234567", nil) - - _, err := newLBCreateOperation( - "web", - []string{}, - []string{"SMTP:25"}, - []string{"sg-abcdef"}, - []string{"subnet-abcdef", "subnet-1234567"}, - mockOutput, - acmclient.NewMockClient(mockCtrl), - ec2, - elbv2client.NewMockClient(mockCtrl), - ) - - if err == nil { - t.Fatalf("expected errors, got none") - } - - if expected := "invalid protocol SMTP (specify TCP, HTTP, or HTTPS)"; err[0].Error() != expected { - t.Errorf("expected: %s, got: %v", expected, err) - } -} - -func TestNewLBCreateOperationUseDefaultSG(t *testing.T) { - mockOutput := &mock.Output{} - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - ec2 := ec2client.NewMockClient(mockCtrl) - ec2.EXPECT().GetDefaultSecurityGroupID().Return("sg-1234567", nil) - ec2.EXPECT().GetSubnetVPCID(gomock.Any()).Return("vpc-1234567", nil) - - o, err := newLBCreateOperation( - "web", - []string{}, - []string{"80"}, - []string{}, - []string{"subnet-abcdef", "subnet-1234567"}, - mockOutput, - acmclient.NewMockClient(mockCtrl), - ec2, - elbv2client.NewMockClient(mockCtrl), - ) - - if err != nil { - t.Fatalf("expected no errors, got: %v", err) - } - - if o.securityGroupIDs[0] != "sg-1234567" { - t.Errorf("expected SG sg-1234567, got: %v", o.securityGroupIDs) - } -} - -func TestNewLBCreateOperationDefaultSGError(t *testing.T) { - mockOutput := &mock.Output{} - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - ec2 := ec2client.NewMockClient(mockCtrl) - ec2.EXPECT().GetDefaultSecurityGroupID().Return("", errors.New("boom")) - ec2.EXPECT().GetSubnetVPCID(gomock.Any()).Return("vpc-1234567", nil) - - _, errs := newLBCreateOperation( - "web", - []string{}, - []string{"80"}, - []string{}, - []string{"subnet-abcdef", "subnet-1234567"}, - mockOutput, - acmclient.NewMockClient(mockCtrl), - ec2, - elbv2client.NewMockClient(mockCtrl), - ) - - if len(errs) == 0 { - t.Fatalf("expected error, got none") - } - - if expected := "boom"; errs[0].Error() != expected { - t.Errorf("expected error %s, got: %v", expected, errs) - } -} - -func TestNewLBCreateOperationCertificateError(t *testing.T) { - mockOutput := &mock.Output{} - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockEC2 := ec2client.NewMockClient(mockCtrl) - mockACM := acmclient.NewMockClient(mockCtrl) - mockELBV2 := elbv2client.NewMockClient(mockCtrl) - - mockEC2.EXPECT().GetSubnetVPCID("subnet-1234567").Return("vpc-1234567", nil) - mockACM.EXPECT().ListCertificates().Return(acm.Certificates{}, errors.New("boom")) - - _, errs := newLBCreateOperation( - "web", - []string{"example.com"}, - []string{"80", "443"}, - []string{"sg-abcdef"}, - []string{"subnet-1234567", "subnet-abcdef"}, - mockOutput, - mockACM, - mockEC2, - mockELBV2, - ) - - if len(errs) != 1 { - t.Fatalf("expected error, got none") - } - - if expected := "could not find certificate ARN: boom"; errs[0].Error() != expected { - t.Errorf("expected error %s, got: %v", expected, errs) - } -} diff --git a/cmd/lb_destroy.go b/cmd/lb_destroy.go deleted file mode 100644 index 59ab9ea..0000000 --- a/cmd/lb_destroy.go +++ /dev/null @@ -1,38 +0,0 @@ -package cmd - -import ( - "fmt" - - "github.com/jpignata/fargate/console" - ELBV2 "github.com/jpignata/fargate/elbv2" - "github.com/spf13/cobra" -) - -type LoadBalancerDestroyOperation struct { - LoadBalancerName string -} - -var loadBalancerDestroyCmd = &cobra.Command{ - Use: "destroy ", - Short: "Destroy load balancer", - Args: cobra.ExactArgs(1), - Run: func(cmd *cobra.Command, args []string) { - operation := &LoadBalancerDestroyOperation{ - LoadBalancerName: args[0], - } - - destroyLoadBalancer(operation) - }, -} - -func init() { - lbCmd.AddCommand(loadBalancerDestroyCmd) -} - -func destroyLoadBalancer(operation *LoadBalancerDestroyOperation) { - elbv2 := ELBV2.New(sess) - - elbv2.DeleteLoadBalancer(operation.LoadBalancerName) - elbv2.DeleteTargetGroup(fmt.Sprintf(defaultTargetGroupFormat, operation.LoadBalancerName)) - console.Info("Destroyed load balancer %s", operation.LoadBalancerName) -} diff --git a/cmd/lb_info.go b/cmd/lb_info.go deleted file mode 100644 index bb96fc4..0000000 --- a/cmd/lb_info.go +++ /dev/null @@ -1,97 +0,0 @@ -package cmd - -import ( - "fmt" - "os" - "sort" - "strings" - "text/tabwriter" - - ACM "github.com/jpignata/fargate/acm" - "github.com/jpignata/fargate/console" - ECS "github.com/jpignata/fargate/ecs" - ELBV2 "github.com/jpignata/fargate/elbv2" - "github.com/spf13/cobra" -) - -type LbInfoOperation struct { - LoadBalancerName string -} - -var lbInfoCmd = &cobra.Command{ - Use: "info ", - Short: "Inspect load balancer", - Args: cobra.ExactArgs(1), - Run: func(cmd *cobra.Command, args []string) { - operation := &LbInfoOperation{ - LoadBalancerName: args[0], - } - - getLoadBalancerInfo(operation) - }, -} - -func init() { - lbCmd.AddCommand(lbInfoCmd) -} - -func getLoadBalancerInfo(operation *LbInfoOperation) { - elbv2 := ELBV2.New(sess) - acm := ACM.New(sess) - ecs := ECS.New(sess, clusterName) - loadBalancer := elbv2.DescribeLoadBalancer(operation.LoadBalancerName) - services := ecs.ListServices() - - console.KeyValue("Load Balancer Name", "%s\n", loadBalancer.Name) - console.KeyValue("Status", "%s\n", Humanize(loadBalancer.Status)) - console.KeyValue("Type", "%s\n", Humanize(loadBalancer.Type)) - console.KeyValue("DNS Name", "%s\n", loadBalancer.DNSName) - console.KeyValue("Subnets", "%s\n", strings.Join(loadBalancer.SubnetIDs, ", ")) - console.KeyValue("Security Groups", "%s\n", strings.Join(loadBalancer.SecurityGroupIDs, ", ")) - console.KeyValue("Ports", "\n") - - for _, listener := range elbv2.GetListeners(loadBalancer.ARN) { - var ruleCount int - - console.KeyValue(" "+listener.String(), "\n") - - if len(listener.CertificateARNs) > 0 { - certificateDomains := acm.ListCertificateDomainNames(listener.CertificateARNs) - console.KeyValue(" Certificates", "%s\n", strings.Join(certificateDomains, ", ")) - } - - w := new(tabwriter.Writer) - w.Init(os.Stdout, 4, 2, 2, ' ', 0) - - console.KeyValue(" Rules", "\n") - - rules := elbv2.DescribeRules(listener.ARN) - - sort.Slice(rules, func(i, j int) bool { return rules[i].Priority > rules[j].Priority }) - - for _, rule := range rules { - serviceName := fmt.Sprintf("Unknown (%s)", rule.TargetGroupARN) - - if strings.Contains(rule.TargetGroupARN, fmt.Sprintf("/%s-default/", loadBalancer.Name)) { - continue - } - - for _, service := range services { - if service.TargetGroupArn == rule.TargetGroupARN { - serviceName = service.Name - } - } - - fmt.Fprintf(w, " %d\t%s\t%s\n", rule.Priority, rule.String(), serviceName) - - ruleCount++ - } - - if ruleCount == 0 { - fmt.Println(" None") - } - - w.Flush() - } - -} diff --git a/cmd/lb_list.go b/cmd/lb_list.go deleted file mode 100644 index eec0ed5..0000000 --- a/cmd/lb_list.go +++ /dev/null @@ -1,114 +0,0 @@ -package cmd - -import ( - "context" - "fmt" - "sort" - "sync" - - "github.com/jpignata/fargate/elbv2" - "github.com/spf13/cobra" - "golang.org/x/time/rate" -) - -type lbListOperation struct { - elbv2 elbv2.Client - output Output -} - -func (o lbListOperation) execute() { - loadBalancers, err := o.find() - - if err != nil { - o.output.Fatal(err, "Could not list load balancers") - return - } - - if len(loadBalancers) == 0 { - o.output.Info("No load balancers found") - return - } - - rows := [][]string{ - []string{"NAME", "TYPE", "STATUS", "DNS NAME", "PORTS"}, - } - - sort.Slice(loadBalancers, func(i, j int) bool { - return loadBalancers[i].Name < loadBalancers[j].Name - }) - - for _, loadBalancer := range loadBalancers { - rows = append(rows, - []string{ - loadBalancer.Name, - Titleize(loadBalancer.Type), - Titleize(loadBalancer.Status), - loadBalancer.DNSName, - fmt.Sprintf("%s", loadBalancer.Listeners), - }, - ) - } - - o.output.Table("", rows) -} - -func (o lbListOperation) find() (elbv2.LoadBalancers, error) { - var wg sync.WaitGroup - - o.output.Debug("Describing Load Balancers [API=elbv2 Action=DescribeLoadBalancers]") - loadBalancers, err := o.elbv2.DescribeLoadBalancers() - - if err != nil { - return elbv2.LoadBalancers{}, err - } - - errs := make(chan error) - done := make(chan bool) - limiter := rate.NewLimiter(describeRequestLimitRate, 1) - - for i := 0; i < len(loadBalancers); i++ { - wg.Add(1) - - go func(index int) { - defer wg.Done() - - if err := limiter.Wait(context.Background()); err == nil { - o.output.Debug("Describing Listeners [API=elbv2 Action=DescribeListeners LoadBalancerArn=%s]", loadBalancers[index].ARN) - listeners, err := o.elbv2.DescribeListeners(loadBalancers[index].ARN) - - if err != nil { - errs <- err - } - - loadBalancers[index].Listeners = listeners - } - }(i) - } - - go func() { - wg.Wait() - done <- true - }() - - select { - case err := <-errs: - return elbv2.LoadBalancers{}, err - case <-done: - return loadBalancers, nil - } -} - -var lbListCmd = &cobra.Command{ - Use: "list", - Short: "List load balancers", - Run: func(cmd *cobra.Command, args []string) { - lbListOperation{ - elbv2: elbv2.New(sess), - output: output, - }.execute() - }, -} - -func init() { - lbCmd.AddCommand(lbListCmd) -} diff --git a/cmd/lb_list_test.go b/cmd/lb_list_test.go deleted file mode 100644 index 9c3275d..0000000 --- a/cmd/lb_list_test.go +++ /dev/null @@ -1,187 +0,0 @@ -package cmd - -import ( - "errors" - "reflect" - "testing" - - "github.com/golang/mock/gomock" - "github.com/jpignata/fargate/cmd/mock" - "github.com/jpignata/fargate/elbv2" - elbv2client "github.com/jpignata/fargate/elbv2/mock/client" -) - -func TestLBListOperation(t *testing.T) { - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := elbv2client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - loadBalancer1 := elbv2.LoadBalancer{ - ARN: "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/lb/50dc6c495c0c9188", - DNSName: "test-12345678.us-east-1.elb.amazonaws.com", - Name: "test", - Type: "application", - Status: "active", - } - loadBalancer2 := elbv2.LoadBalancer{ - ARN: "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/lb/93fa3d386bec918a", - DNSName: "test-abcdef.us-east-1.elb.amazonaws.com", - Name: "test2", - Type: "application", - Status: "active", - } - listener1 := elbv2.Listener{ - ARN: "arn:aws:elasticloadbalancing:us-east-1:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2", - Port: 80, - Protocol: "HTTP", - } - listener2 := elbv2.Listener{ - ARN: "arn:aws:elasticloadbalancing:us-east-1:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2", - Port: 8080, - Protocol: "HTTP", - } - loadBalancers := elbv2.LoadBalancers{loadBalancer1, loadBalancer2} - listeners1 := elbv2.Listeners{listener1} - listeners2 := elbv2.Listeners{listener2} - - mockClient.EXPECT().DescribeLoadBalancers().Return(loadBalancers, nil) - mockClient.EXPECT().DescribeListeners(loadBalancer1.ARN).Return(listeners1, nil) - mockClient.EXPECT().DescribeListeners(loadBalancer2.ARN).Return(listeners2, nil) - - lbListOperation{ - elbv2: mockClient, - output: mockOutput, - }.execute() - - if len(mockOutput.Tables) == 0 { - t.Fatalf("expected table, got none") - } - - if len(mockOutput.Tables[0].Rows) != 3 { - t.Errorf("expected table with 3 rows, got %d", len(mockOutput.Tables[0].Rows)) - } - - if expected, got := []string{"NAME", "TYPE", "STATUS", "DNS NAME", "PORTS"}, mockOutput.Tables[0].Rows[0]; !reflect.DeepEqual(expected, got) { - t.Errorf("expected column headers: %v, got: %v", expected, got) - } - - row1 := mockOutput.Tables[0].Rows[1] - - if row1[0] != loadBalancer1.Name { - t.Errorf("expected name: %s, got: %s", loadBalancer1.Name, row1[0]) - } - - if expected := Titleize(loadBalancer1.Type); row1[1] != expected { - t.Errorf("expected type: %s, got: %s", expected, row1[1]) - } - - if expected := Titleize(loadBalancer1.Status); row1[2] != expected { - t.Errorf("expected status: %s, got: %s", expected, row1[2]) - } - - if row1[3] != loadBalancer1.DNSName { - t.Errorf("expected DNS name: %s, got: %s", loadBalancer1.DNSName, row1[3]) - } - - if expected := "HTTP:80"; row1[4] != expected { - t.Errorf("expected ports: %s, got: %s", expected, row1[4]) - } - - row2 := mockOutput.Tables[0].Rows[2] - - if row2[0] != loadBalancer2.Name { - t.Errorf("expected name: %s, got: %s", loadBalancer2.Name, row2[0]) - } - - if expected := Titleize(loadBalancer2.Type); row2[1] != expected { - t.Errorf("expected type: %s, got: %s", expected, row2[1]) - } - - if expected := Titleize(loadBalancer2.Status); row2[2] != expected { - t.Errorf("expected status: %s, got: %s", expected, row2[2]) - } - - if row2[3] != loadBalancer2.DNSName { - t.Errorf("expected DNS name: %s, got: %s", loadBalancer1.DNSName, row2[3]) - } - - if expected := "HTTP:8080"; row2[4] != expected { - t.Errorf("expected ports: %s, got: %s", expected, row2[4]) - } -} - -func TestLBListOperationLBDescribeError(t *testing.T) { - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := elbv2client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockClient.EXPECT().DescribeLoadBalancers().Return(elbv2.LoadBalancers{}, errors.New("boom")) - - lbListOperation{ - elbv2: mockClient, - output: mockOutput, - }.execute() - - if len(mockOutput.FatalMsgs) == 0 { - t.Fatalf("expected fatal output, got none") - } - - if expected, got := "Could not list load balancers", mockOutput.FatalMsgs[0].Msg; got != expected { - t.Errorf("expected fatal output: %s, got: %s", expected, got) - } -} - -func TestLBListOperationListenerDescribeError(t *testing.T) { - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := elbv2client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - loadBalancers := elbv2.LoadBalancers{ - elbv2.LoadBalancer{ARN: "lbARN"}, - } - - mockClient.EXPECT().DescribeLoadBalancers().Return(loadBalancers, nil) - mockClient.EXPECT().DescribeListeners("lbARN").Return(elbv2.Listeners{}, errors.New("boom")) - - lbListOperation{ - elbv2: mockClient, - output: mockOutput, - }.execute() - - if len(mockOutput.FatalMsgs) == 0 { - t.Fatalf("expected fatal output, got none") - } - - if expected, got := "Could not list load balancers", mockOutput.FatalMsgs[0].Msg; got != expected { - t.Errorf("expected fatal output: %s, got: %s", expected, got) - } -} - -func TestLBListOperationNoneFound(t *testing.T) { - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockClient := elbv2client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockClient.EXPECT().DescribeLoadBalancers().Return(elbv2.LoadBalancers{}, nil) - - lbListOperation{ - elbv2: mockClient, - output: mockOutput, - }.execute() - - if len(mockOutput.InfoMsgs) == 0 { - t.Fatalf("expected info output, got none") - } - - if expected, got := "No load balancers found", mockOutput.InfoMsgs[0]; got != expected { - t.Errorf("expected info output: %s, got: %s", expected, got) - } -} diff --git a/cmd/logs.go b/cmd/logs.go index 3117a19..e2e856e 100644 --- a/cmd/logs.go +++ b/cmd/logs.go @@ -7,8 +7,8 @@ import ( "time" lru "github.com/hashicorp/golang-lru" - CWL "github.com/jpignata/fargate/cloudwatchlogs" - "github.com/jpignata/fargate/console" + CWL "github.com/turnerlabs/fargate/cloudwatchlogs" + "github.com/turnerlabs/fargate/console" ) const ( diff --git a/cmd/root.go b/cmd/root.go index 994ed22..770c96c 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -10,15 +10,13 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/session" - "github.com/jpignata/fargate/console" - ECS "github.com/jpignata/fargate/ecs" + "github.com/turnerlabs/fargate/console" + ECS "github.com/turnerlabs/fargate/ecs" "github.com/spf13/cobra" "golang.org/x/crypto/ssh/terminal" ) const ( - version = "0.2.3" - defaultClusterName = "fargate" defaultRegion = "us-east-1" @@ -158,7 +156,8 @@ CloudWatch Logs, and Amazon Route 53 into an easy-to-use CLI.`, }, } -func Execute() { +// Execute ... +func Execute(version string) { rootCmd.Version = version rootCmd.Execute() } diff --git a/cmd/service_create.go b/cmd/service_create.go deleted file mode 100644 index e752497..0000000 --- a/cmd/service_create.go +++ /dev/null @@ -1,365 +0,0 @@ -package cmd - -import ( - "fmt" - "regexp" - "strings" - - CWL "github.com/jpignata/fargate/cloudwatchlogs" - "github.com/jpignata/fargate/console" - "github.com/jpignata/fargate/docker" - EC2 "github.com/jpignata/fargate/ec2" - ECR "github.com/jpignata/fargate/ecr" - ECS "github.com/jpignata/fargate/ecs" - ELBV2 "github.com/jpignata/fargate/elbv2" - "github.com/jpignata/fargate/git" - IAM "github.com/jpignata/fargate/iam" - "github.com/spf13/cobra" -) - -const typeService = "service" - -type ServiceCreateOperation struct { - Cpu string - EnvVars []ECS.EnvVar - Image string - LoadBalancerArn string - LoadBalancerName string - Memory string - Num int64 - Port Port - Rules []ELBV2.Rule - SecurityGroupIds []string - ServiceName string - SubnetIds []string - TaskRole string -} - -func (o *ServiceCreateOperation) SetPort(inputPort string) { - var msgs []string - - port, _ := inflatePort(inputPort) - - if !validProtocol.MatchString(port.Protocol) { - msgs = append(msgs, fmt.Sprintf("Invalid protocol %s [specify TCP, HTTP, or HTTPS]", port.Protocol)) - } - - if port.Number < 1 || port.Number > 65535 { - msgs = append(msgs, fmt.Sprintf("Invalid port %d [specify within 1 - 65535]", port.Number)) - } - - if len(msgs) > 0 { - console.ErrorExit(fmt.Errorf(strings.Join(msgs, ", ")), "Invalid command line flags") - } - - o.Port = port -} - -func (o *ServiceCreateOperation) Validate() { - err := validateCpuAndMemory(o.Cpu, o.Memory) - - if err != nil { - console.ErrorExit(err, "Invalid settings: %s CPU units / %s MiB", o.Cpu, o.Memory) - } - - if o.Num < 1 { - console.ErrorExit(err, "Invalid number of tasks to keep running: %d, num must be > 1", o.Num) - } -} - -func (o *ServiceCreateOperation) SetLoadBalancer(lb string) { - if o.Port.Empty() { - console.IssueExit("Setting a load balancer requires a port") - } - - elbv2 := ELBV2.New(sess) - loadBalancer := elbv2.DescribeLoadBalancer(lb) - - if loadBalancer.Type == typeNetwork { - if o.Port.Protocol != protocolTcp { - console.ErrorExit(fmt.Errorf("network load balancer %s only supports TCP", lb), "Invalid load balancer and protocol") - } - } - - if loadBalancer.Type == typeApplication { - if !(o.Port.Protocol == protocolHttp || o.Port.Protocol == protocolHttps) { - console.ErrorExit(fmt.Errorf("application load balancer %s only supports HTTP or HTTPS", lb), "Invalid load balancer and protocol") - } - } - - o.LoadBalancerName = lb - o.LoadBalancerArn = loadBalancer.ARN -} - -func (o *ServiceCreateOperation) SetRules(inputRules []string) { - var rules []ELBV2.Rule - var msgs []string - - validRuleTypes := regexp.MustCompile(validRuleTypesPattern) - - if len(inputRules) > 0 && o.LoadBalancerArn == "" { - msgs = append(msgs, "lb must be configured if rules are specified") - } - - for _, inputRule := range inputRules { - splitInputRule := strings.SplitN(inputRule, "=", 2) - - if len(splitInputRule) != 2 { - msgs = append(msgs, "rules must be in the form of type=value") - } - - if !validRuleTypes.MatchString(splitInputRule[0]) { - msgs = append(msgs, fmt.Sprintf("Invalid rule type %s [must be path or host]", splitInputRule[0])) - } - - rules = append(rules, - ELBV2.Rule{ - Type: strings.ToUpper(splitInputRule[0]), - Value: splitInputRule[1], - }, - ) - } - - if len(msgs) > 0 { - console.ErrorExit(fmt.Errorf(strings.Join(msgs, ", ")), "Invalid rule") - } - - o.Rules = rules -} - -func (o *ServiceCreateOperation) SetEnvVars(inputEnvVars []string) { - o.EnvVars = extractEnvVars(inputEnvVars) -} - -func (o *ServiceCreateOperation) SetSecurityGroupIds(securityGroupIds []string) { - o.SecurityGroupIds = securityGroupIds -} - -var ( - flagServiceCreateCpu string - flagServiceCreateEnvVars []string - flagServiceCreateImage string - flagServiceCreateLb string - flagServiceCreateMemory string - flagServiceCreateNum int64 - flagServiceCreatePort string - flagServiceCreateRules []string - flagServiceCreateSecurityGroupIds []string - flagServiceCreateSubnetIds []string - flagServiceCreateTaskRole string -) - -var serviceCreateCmd = &cobra.Command{ - Use: "create ", - Short: "Create a service", - Long: `Create a service - -CPU and memory settings can be optionally specified as CPU units and mebibytes -respectively using the --cpu and --memory flags. Every 1024 CPU units is -equivilent to a single vCPU. AWS Fargate only supports certain combinations of -CPU and memory configurations: - -| CPU (CPU Units) | Memory (MiB) | -| --------------- | ------------------------------------- | -| 256 | 512, 1024, or 2048 | -| 512 | 1024 through 4096 in 1GiB increments | -| 1024 | 2048 through 8192 in 1GiB increments | -| 2048 | 4096 through 16384 in 1GiB increments | -| 4096 | 8192 through 30720 in 1GiB increments | - -If not specified, fargate will launch minimally sized tasks at 0.25 vCPU (256 -CPU units) and 0.5GB (512 MiB) of memory. - -The Docker container image to use in the service can be optionally specified -via the --image flag. If not specified, fargate will build a new Docker -container image from the current working directory and push it to Amazon ECR in -a repository named for the task group. If the current working directory is a -git repository, the container image will be tagged with the short ref of the -HEAD commit. If not, a timestamp in the format of YYYYMMDDHHMMSS will be used. - -To use the service with a load balancer, a port must be specified when the -service is created. Specify a port by passing the --port flag and a port -expression of protocol:port-number. For example, if the service listens on port -80 and uses HTTP, specify HTTP:80. Valid protocols are HTTP, HTTPS, and TCP. -You can only specify a single port. - -Services can optionally be configured to use a load balancer. To put a load -balancer in front a service, pass the --lb flag with the name of a load -balancer. If you specify a load balancer, you must also specify a port via the ---port flag to which the load balancer should forward requests. Optionally, -Application Load Balancers can be configured to route HTTP/HTTPS traffic to the -service based upon a rule. Rules are configured by passing one or more rules by -specifying the --rule flag along with a rule expression. Rule expressions are -in the format of TYPE=VALUE. Type can either be PATH or HOST. PATH matches the -PATH of the request and HOST matches the requested hostname in the HTTP -request. Both PATH and HOST types can include up to three wildcard characters: -* to match multiple characters and ? to match a single character. If rules are -omitted, the service will be the load balancer's default action. - -Environment variables can be specified via the --env flag. Specify --env with a -key=value parameter multiple times to add multiple variables. - -Specify the desired count of tasks the service should maintain by passing the ---num flag with a number. If you omit this flag, fargate will configure a -service with a desired number of tasks of 1. - -Security groups can optionally be specified for the service by passing the ---security-group-id flag with a security group ID. To add multiple security -groups, pass --security-group-id with a security group ID multiple times. If ---security-group-id is omitted, a permissive security group will be applied to -the service. - -By default, the service will be created in the default VPC and attached -to the default VPC subnets for each availability zone. You can override this by -specifying explicit subnets by passing the --subnet-id flag with a subnet ID. - -A task role can be optionally specified via the --task-role flag by providing -eith a full IAM role ARN or the name of an IAM role. The tasks run by the -service will be able to assume this role.`, - Args: cobra.ExactArgs(1), - Run: func(cmd *cobra.Command, args []string) { - operation := &ServiceCreateOperation{ - Cpu: flagServiceCreateCpu, - Image: flagServiceCreateImage, - Memory: flagServiceCreateMemory, - Num: flagServiceCreateNum, - SecurityGroupIds: flagServiceCreateSecurityGroupIds, - ServiceName: args[0], - SubnetIds: flagServiceCreateSubnetIds, - TaskRole: flagServiceCreateTaskRole, - } - - if flagServiceCreatePort != "" { - operation.SetPort(flagServiceCreatePort) - } - - if flagServiceCreateLb != "" { - operation.SetLoadBalancer(flagServiceCreateLb) - } - - if len(flagServiceCreateRules) > 0 { - operation.SetRules(flagServiceCreateRules) - } - - if len(flagServiceCreateEnvVars) > 0 { - operation.SetEnvVars(flagServiceCreateEnvVars) - } - - operation.Validate() - createService(operation) - }, -} - -func init() { - serviceCreateCmd.Flags().StringVarP(&flagServiceCreateCpu, "cpu", "c", "256", "Amount of cpu units to allocate for each task") - serviceCreateCmd.Flags().StringVarP(&flagServiceCreateMemory, "memory", "m", "512", "Amount of MiB to allocate for each task") - serviceCreateCmd.Flags().StringSliceVarP(&flagServiceCreateEnvVars, "env", "e", []string{}, "Environment variables to set [e.g. KEY=value] (can be specified multiple times)") - serviceCreateCmd.Flags().StringVarP(&flagServiceCreatePort, "port", "p", "", "Port to listen on [e.g., 80, 443, http:8080, https:8443, tcp:1935]") - serviceCreateCmd.Flags().StringVarP(&flagServiceCreateImage, "image", "i", "", "Docker image to run in the service; if omitted Fargate will build an image from the Dockerfile in the current directory") - serviceCreateCmd.Flags().StringVarP(&flagServiceCreateLb, "lb", "l", "", "Name of a load balancer to use") - serviceCreateCmd.Flags().StringSliceVarP(&flagServiceCreateRules, "rule", "r", []string{}, "Routing rule for the load balancer [e.g. host=api.example.com, path=/api/*]; if omitted service will be the default route (can be specified multiple times)") - serviceCreateCmd.Flags().Int64VarP(&flagServiceCreateNum, "num", "n", 1, "Number of tasks instances to keep running") - serviceCreateCmd.Flags().StringSliceVar(&flagServiceCreateSecurityGroupIds, "security-group-id", []string{}, "ID of a security group to apply to the service (can be specified multiple times)") - serviceCreateCmd.Flags().StringSliceVar(&flagServiceCreateSubnetIds, "subnet-id", []string{}, "ID of a subnet in which to place the service (can be specified multiple times)") - serviceCreateCmd.Flags().StringVarP(&flagServiceCreateTaskRole, "task-role", "", "", "Name or ARN of an IAM role that the service's tasks can assume") - - serviceCmd.AddCommand(serviceCreateCmd) -} - -func createService(operation *ServiceCreateOperation) { - var targetGroupArn string - - cwl := CWL.New(sess) - ec2 := EC2.New(sess) - ecr := ECR.New(sess) - elbv2 := ELBV2.New(sess) - ecs := ECS.New(sess, clusterName) - iam := IAM.New(sess) - ecsTaskExecutionRoleArn := iam.CreateEcsTaskExecutionRole() - logGroupName := cwl.CreateLogGroup(serviceLogGroupFormat, operation.ServiceName) - - if len(operation.SecurityGroupIds) == 0 { - defaultSecurityGroupID, _ := ec2.GetDefaultSecurityGroupID() - operation.SecurityGroupIds = []string{defaultSecurityGroupID} - } - - if len(operation.SubnetIds) == 0 { - operation.SubnetIds, _ = ec2.GetDefaultSubnetIDs() - } - - if operation.Image == "" { - var tag, repositoryUri string - - if ecr.IsRepositoryCreated(operation.ServiceName) { - repositoryUri = ecr.GetRepositoryUri(operation.ServiceName) - } else { - repositoryUri = ecr.CreateRepository(operation.ServiceName) - } - - if git.IsCwdGitRepo() { - tag = git.GetShortSha() - } else { - tag = docker.GenerateTag() - } - - repository := docker.NewRepository(repositoryUri) - username, password := ecr.GetUsernameAndPassword() - - repository.Login(username, password) - repository.Build(tag) - repository.Push(tag) - - operation.Image = repository.UriFor(tag) - } - - if operation.LoadBalancerArn != "" { - vpcId, _ := ec2.GetSubnetVPCID(operation.SubnetIds[0]) - targetGroupArn, _ = elbv2.CreateTargetGroup( - ELBV2.CreateTargetGroupParameters{ - Name: fmt.Sprintf("%s-%s", clusterName, operation.ServiceName), - Port: operation.Port.Number, - Protocol: operation.Port.Protocol, - VPCID: vpcId, - }, - ) - - if len(operation.Rules) > 0 { - for _, rule := range operation.Rules { - elbv2.AddRule(operation.LoadBalancerArn, targetGroupArn, rule) - } - } else { - elbv2.ModifyLoadBalancerDefaultAction(operation.LoadBalancerArn, targetGroupArn) - } - } - - taskDefinitionArn := ecs.CreateTaskDefinition( - &ECS.CreateTaskDefinitionInput{ - Cpu: operation.Cpu, - EnvVars: operation.EnvVars, - ExecutionRoleArn: ecsTaskExecutionRoleArn, - Image: operation.Image, - Memory: operation.Memory, - Name: operation.ServiceName, - Port: operation.Port.Number, - LogGroupName: logGroupName, - LogRegion: region, - TaskRole: operation.TaskRole, - Type: typeService, - }, - ) - - ecs.CreateService( - &ECS.CreateServiceInput{ - Cluster: clusterName, - DesiredCount: operation.Num, - Name: operation.ServiceName, - Port: operation.Port.Number, - SecurityGroupIds: operation.SecurityGroupIds, - SubnetIds: operation.SubnetIds, - TargetGroupArn: targetGroupArn, - TaskDefinitionArn: taskDefinitionArn, - }, - ) - - console.Info("Created service %s", operation.ServiceName) -} diff --git a/cmd/service_deploy.go b/cmd/service_deploy.go index c0b03fb..3d0faa4 100644 --- a/cmd/service_deploy.go +++ b/cmd/service_deploy.go @@ -1,11 +1,11 @@ package cmd import ( - "github.com/jpignata/fargate/console" - "github.com/jpignata/fargate/docker" - ECR "github.com/jpignata/fargate/ecr" - ECS "github.com/jpignata/fargate/ecs" - "github.com/jpignata/fargate/git" + "github.com/turnerlabs/fargate/console" + "github.com/turnerlabs/fargate/docker" + ECR "github.com/turnerlabs/fargate/ecr" + ECS "github.com/turnerlabs/fargate/ecs" + "github.com/turnerlabs/fargate/git" "github.com/spf13/cobra" ) diff --git a/cmd/service_destroy.go b/cmd/service_destroy.go deleted file mode 100644 index 01d4d87..0000000 --- a/cmd/service_destroy.go +++ /dev/null @@ -1,82 +0,0 @@ -package cmd - -import ( - "fmt" - - "github.com/jpignata/fargate/console" - ECS "github.com/jpignata/fargate/ecs" - ELBV2 "github.com/jpignata/fargate/elbv2" - "github.com/spf13/cobra" -) - -type ServiceDestroyOperation struct { - ServiceName string -} - -var serviceDestroyCmd = &cobra.Command{ - Use: "destroy ", - Short: "Destroy a service", - Long: `Destroy service - -In order to destroy a service, it must first be scaled to 0 running tasks.`, - Args: cobra.ExactArgs(1), - Run: func(cmd *cobra.Command, args []string) { - operation := &ServiceDestroyOperation{ - ServiceName: args[0], - } - - destroyService(operation) - }, -} - -func init() { - serviceCmd.AddCommand(serviceDestroyCmd) -} - -func destroyService(operation *ServiceDestroyOperation) { - elbv2 := ELBV2.New(sess) - ecs := ECS.New(sess, clusterName) - service := ecs.DescribeService(operation.ServiceName) - - if service.DesiredCount > 0 { - err := fmt.Errorf("%d tasks running, scale service to 0", service.DesiredCount) - console.ErrorExit(err, "Cannot destroy service %s", operation.ServiceName) - } - - if service.TargetGroupArn != "" { - loadBalancerArn := elbv2.GetTargetGroupLoadBalancerArn(service.TargetGroupArn) - loadBalancer := elbv2.DescribeLoadBalancerByARN(loadBalancerArn) - listeners := elbv2.GetListeners(loadBalancerArn) - - for _, listener := range listeners { - for _, rule := range elbv2.DescribeRules(listener.ARN) { - if rule.TargetGroupARN == service.TargetGroupArn { - if rule.IsDefault { - defaultTargetGroupName := fmt.Sprintf(defaultTargetGroupFormat, loadBalancer.Name) - defaultTargetGroupArn := elbv2.GetTargetGroupArn(defaultTargetGroupName) - - if defaultTargetGroupArn == "" { - defaultTargetGroupArn, _ = elbv2.CreateTargetGroup( - ELBV2.CreateTargetGroupParameters{ - Name: defaultTargetGroupName, - Port: listeners[0].Port, - Protocol: listeners[0].Protocol, - VPCID: loadBalancer.VPCID, - }, - ) - } - - elbv2.ModifyListenerDefaultAction(listener.ARN, defaultTargetGroupArn) - } else { - elbv2.DeleteRule(rule.ARN) - } - } - } - } - - elbv2.DeleteTargetGroupByArn(service.TargetGroupArn) - } - - ecs.DestroyService(operation.ServiceName) - console.Info("Destroyed service %s", operation.ServiceName) -} diff --git a/cmd/service_env_list.go b/cmd/service_env_list.go index 5fafead..9598cb4 100644 --- a/cmd/service_env_list.go +++ b/cmd/service_env_list.go @@ -2,7 +2,7 @@ package cmd import ( "fmt" - ECS "github.com/jpignata/fargate/ecs" + ECS "github.com/turnerlabs/fargate/ecs" "github.com/spf13/cobra" ) diff --git a/cmd/service_env_set.go b/cmd/service_env_set.go index f806446..7dea484 100644 --- a/cmd/service_env_set.go +++ b/cmd/service_env_set.go @@ -1,8 +1,8 @@ package cmd import ( - "github.com/jpignata/fargate/console" - ECS "github.com/jpignata/fargate/ecs" + "github.com/turnerlabs/fargate/console" + ECS "github.com/turnerlabs/fargate/ecs" "github.com/spf13/cobra" ) diff --git a/cmd/service_env_unset.go b/cmd/service_env_unset.go index 36d28e0..04e2d37 100644 --- a/cmd/service_env_unset.go +++ b/cmd/service_env_unset.go @@ -3,8 +3,8 @@ package cmd import ( "strings" - "github.com/jpignata/fargate/console" - ECS "github.com/jpignata/fargate/ecs" + "github.com/turnerlabs/fargate/console" + ECS "github.com/turnerlabs/fargate/ecs" "github.com/spf13/cobra" ) diff --git a/cmd/service_info.go b/cmd/service_info.go index c730064..40498c8 100644 --- a/cmd/service_info.go +++ b/cmd/service_info.go @@ -7,11 +7,11 @@ import ( "strings" "text/tabwriter" - ACM "github.com/jpignata/fargate/acm" - "github.com/jpignata/fargate/console" - EC2 "github.com/jpignata/fargate/ec2" - ECS "github.com/jpignata/fargate/ecs" - ELBV2 "github.com/jpignata/fargate/elbv2" + ACM "github.com/turnerlabs/fargate/acm" + "github.com/turnerlabs/fargate/console" + EC2 "github.com/turnerlabs/fargate/ec2" + ECS "github.com/turnerlabs/fargate/ecs" + ELBV2 "github.com/turnerlabs/fargate/elbv2" "github.com/spf13/cobra" ) diff --git a/cmd/service_list.go b/cmd/service_list.go index 4bad70a..4a2d525 100644 --- a/cmd/service_list.go +++ b/cmd/service_list.go @@ -5,9 +5,9 @@ import ( "os" "text/tabwriter" - "github.com/jpignata/fargate/console" - ECS "github.com/jpignata/fargate/ecs" - ELBV2 "github.com/jpignata/fargate/elbv2" + "github.com/turnerlabs/fargate/console" + ECS "github.com/turnerlabs/fargate/ecs" + ELBV2 "github.com/turnerlabs/fargate/elbv2" "github.com/spf13/cobra" ) diff --git a/cmd/service_ps.go b/cmd/service_ps.go index 8f9acf0..9de925f 100644 --- a/cmd/service_ps.go +++ b/cmd/service_ps.go @@ -5,9 +5,9 @@ import ( "os" "text/tabwriter" - "github.com/jpignata/fargate/console" - EC2 "github.com/jpignata/fargate/ec2" - ECS "github.com/jpignata/fargate/ecs" + "github.com/turnerlabs/fargate/console" + EC2 "github.com/turnerlabs/fargate/ec2" + ECS "github.com/turnerlabs/fargate/ecs" "github.com/spf13/cobra" ) diff --git a/cmd/service_restart.go b/cmd/service_restart.go index 871fd88..69eeb83 100644 --- a/cmd/service_restart.go +++ b/cmd/service_restart.go @@ -1,8 +1,8 @@ package cmd import ( - "github.com/jpignata/fargate/console" - ECS "github.com/jpignata/fargate/ecs" + "github.com/turnerlabs/fargate/console" + ECS "github.com/turnerlabs/fargate/ecs" "github.com/spf13/cobra" ) diff --git a/cmd/service_scale.go b/cmd/service_scale.go index 87d92bc..bd8d29b 100644 --- a/cmd/service_scale.go +++ b/cmd/service_scale.go @@ -5,8 +5,8 @@ import ( "regexp" "strconv" - "github.com/jpignata/fargate/console" - ECS "github.com/jpignata/fargate/ecs" + "github.com/turnerlabs/fargate/console" + ECS "github.com/turnerlabs/fargate/ecs" "github.com/spf13/cobra" ) diff --git a/cmd/service_update.go b/cmd/service_update.go index 701840e..107e8c7 100644 --- a/cmd/service_update.go +++ b/cmd/service_update.go @@ -3,8 +3,8 @@ package cmd import ( "fmt" - "github.com/jpignata/fargate/console" - ECS "github.com/jpignata/fargate/ecs" + "github.com/turnerlabs/fargate/console" + ECS "github.com/turnerlabs/fargate/ecs" "github.com/spf13/cobra" ) diff --git a/cmd/task.go b/cmd/task.go deleted file mode 100644 index 59638ad..0000000 --- a/cmd/task.go +++ /dev/null @@ -1,21 +0,0 @@ -package cmd - -import ( - "github.com/spf13/cobra" -) - -const taskLogGroupFormat = "/fargate/task/%s" - -var taskCmd = &cobra.Command{ - Use: "task", - Short: "Manage tasks", - Long: `Manage tasks - -Tasks are one-time executions of your container. Instances of your task are run -until you manually stop them either through AWS APIs, the AWS Management -Console, or fargate task stop, or until they are interrupted for any reason.`, -} - -func init() { - rootCmd.AddCommand(taskCmd) -} diff --git a/cmd/task_info.go b/cmd/task_info.go deleted file mode 100644 index 7c12aab..0000000 --- a/cmd/task_info.go +++ /dev/null @@ -1,101 +0,0 @@ -package cmd - -import ( - "fmt" - "strings" - - "github.com/jpignata/fargate/console" - EC2 "github.com/jpignata/fargate/ec2" - ECS "github.com/jpignata/fargate/ecs" - "github.com/spf13/cobra" -) - -type TaskInfoOperation struct { - TaskGroupName string - TaskIds []string -} - -var flagTaskInfoTasks []string - -var taskInfoCmd = &cobra.Command{ - Use: "info ", - Short: "Inspect tasks", - Long: `Inspect tasks - -Shows extended information for each running task within a task group or for -specific tasks specified with the --task flag. Information includes environment -variables which could differ between tasks in a task group. To inspect multiple -specific tasks within a task group specific --task with a task ID multiple -times.`, - Args: cobra.ExactArgs(1), - Run: func(cmd *cobra.Command, args []string) { - operation := &TaskInfoOperation{ - TaskGroupName: args[0], - TaskIds: flagTaskInfoTasks, - } - - getTaskInfo(operation) - }, -} - -func init() { - taskCmd.AddCommand(taskInfoCmd) - - taskInfoCmd.Flags().StringSliceVarP(&flagTaskInfoTasks, "task", "t", []string{}, "Get info for specific task instances (can be specified multiple times)") -} - -func getTaskInfo(operation *TaskInfoOperation) { - var tasks []ECS.Task - var eniIds []string - - ecs := ECS.New(sess, clusterName) - ec2 := EC2.New(sess) - - if len(operation.TaskIds) > 0 { - tasks = ecs.DescribeTasks(operation.TaskIds) - } else { - tasks = ecs.DescribeTasksForTaskGroup(operation.TaskGroupName) - } - - if len(tasks) == 0 { - console.InfoExit("No tasks found") - } - - for _, task := range tasks { - if task.EniId != "" { - eniIds = append(eniIds, task.EniId) - } - } - - enis := ec2.DescribeNetworkInterfaces(eniIds) - - console.KeyValue("Task Group Name", "%s\n", operation.TaskGroupName) - console.KeyValue("Task Instances", "%d\n", len(tasks)) - - for _, task := range tasks { - eni := enis[task.EniId] - - console.KeyValue(" "+task.TaskId, "\n") - console.KeyValue(" Image", "%s\n", task.Image) - console.KeyValue(" Status", "%s\n", Humanize(task.LastStatus)) - console.KeyValue(" Started At", "%s\n", task.CreatedAt) - console.KeyValue(" IP", "%s\n", eni.PublicIpAddress) - console.KeyValue(" CPU", "%s\n", task.Cpu) - console.KeyValue(" Memory", "%s\n", task.Memory) - - if task.TaskRole != "" { - console.KeyValue(" Task Role", "%s\n", task.TaskRole) - } - - console.KeyValue(" Subnet", "%s\n", task.SubnetId) - console.KeyValue(" Security Groups", "%s\n", strings.Join(eni.SecurityGroupIds, ", ")) - - if len(task.EnvVars) > 0 { - console.KeyValue(" Environment Variables", "\n") - - for _, envVar := range task.EnvVars { - fmt.Printf(" %s=%s\n", envVar.Key, envVar.Value) - } - } - } -} diff --git a/cmd/task_list.go b/cmd/task_list.go deleted file mode 100644 index 08c3a07..0000000 --- a/cmd/task_list.go +++ /dev/null @@ -1,45 +0,0 @@ -package cmd - -import ( - "fmt" - "os" - "text/tabwriter" - - "github.com/jpignata/fargate/console" - ECS "github.com/jpignata/fargate/ecs" - "github.com/spf13/cobra" -) - -var taskListCmd = &cobra.Command{ - Use: "list", - Short: "List running task groups", - Run: func(cmd *cobra.Command, args []string) { - listTaskGroups() - }, -} - -func init() { - taskCmd.AddCommand(taskListCmd) -} - -func listTaskGroups() { - ecs := ECS.New(sess, clusterName) - taskGroups := ecs.ListTaskGroups() - - if len(taskGroups) == 0 { - console.InfoExit("No tasks running") - } - - w := new(tabwriter.Writer) - w.Init(os.Stdout, 0, 8, 1, '\t', 0) - fmt.Fprintln(w, "NAME\tINSTANCES") - - for _, taskGroup := range taskGroups { - fmt.Fprintf(w, "%s\t%d\n", - taskGroup.TaskGroupName, - taskGroup.Instances, - ) - } - - w.Flush() -} diff --git a/cmd/task_logs.go b/cmd/task_logs.go deleted file mode 100644 index d037bfc..0000000 --- a/cmd/task_logs.go +++ /dev/null @@ -1,70 +0,0 @@ -package cmd - -import ( - "fmt" - - "github.com/spf13/cobra" -) - -var ( - flagTaskLogsFilter string - flagTaskLogsEndTime string - flagTaskLogsStartTime string - flagTaskLogsFollow bool - flagTaskLogsTasks []string -) - -var taskLogsCmd = &cobra.Command{ - Use: "logs ", - Short: "Show logs from tasks", - Long: `Show logs from tasks - -Return either a specific segment of task logs or tail logs in real-time using -the --follow option. Logs are prefixed by their log stream name which is in the -format of "fargate//." - -Follow will continue to run and return logs until interrupted by Control-C. If ---follow is passed --end cannot be specified. - -Logs can be returned for specific tasks within a task group by passing a task -ID via the --task flag. Pass --task with a task ID multiple times in order to -retrieve logs from multiple specific tasks. - -A specific window of logs can be requested by passing --start and --end options -with a time expression. The time expression can be either a duration or a -timestamp: - - - Duration (e.g. -1h [one hour ago], -1h10m30s [one hour, ten minutes, and - thirty seconds ago], 2h [two hours from now]) - - Timestamp with optional timezone in the format of YYYY-MM-DD HH:MM:SS [TZ]; - timezone will default to UTC if omitted (e.g. 2017-12-22 15:10:03 EST) - -You can filter logs for specific term by passing a filter expression via the ---filter flag. Pass a single term to search for that term, pass multiple terms -to search for log messages that include all terms.`, - Args: cobra.ExactArgs(1), - Run: func(cmd *cobra.Command, args []string) { - operation := &GetLogsOperation{ - LogGroupName: fmt.Sprintf(taskLogGroupFormat, args[0]), - Filter: flagTaskLogsFilter, - Follow: flagTaskLogsFollow, - Namespace: args[0], - } - - operation.AddTasks(flagTaskLogsTasks) - operation.AddStartTime(flagTaskLogsStartTime) - operation.AddEndTime(flagTaskLogsEndTime) - - GetLogs(operation) - }, -} - -func init() { - taskCmd.AddCommand(taskLogsCmd) - - taskLogsCmd.Flags().BoolVarP(&flagTaskLogsFollow, "follow", "f", false, "Poll logs and continuously print new events") - taskLogsCmd.Flags().StringVar(&flagTaskLogsFilter, "filter", "", "Filter pattern to apply") - taskLogsCmd.Flags().StringVar(&flagTaskLogsStartTime, "start", "", "Earliest time to return logs (e.g. -1h, 2018-01-01 09:36:00 EST") - taskLogsCmd.Flags().StringVar(&flagTaskLogsEndTime, "end", "", "Latest time to return logs (e.g. 3y, 2021-01-20 12:00:00 EST") - taskLogsCmd.Flags().StringSliceVarP(&flagTaskLogsTasks, "task", "t", []string{}, "Show logs from specific task (can be specified multiple times)") -} diff --git a/cmd/task_ps.go b/cmd/task_ps.go deleted file mode 100644 index 216383a..0000000 --- a/cmd/task_ps.go +++ /dev/null @@ -1,71 +0,0 @@ -package cmd - -import ( - "fmt" - "os" - "text/tabwriter" - - "github.com/jpignata/fargate/console" - EC2 "github.com/jpignata/fargate/ec2" - ECS "github.com/jpignata/fargate/ecs" - "github.com/spf13/cobra" -) - -type TaskProcessListOperation struct { - TaskName string -} - -var taskPsCmd = &cobra.Command{ - Use: "ps ", - Short: "List running tasks", - Args: cobra.ExactArgs(1), - Run: func(cmd *cobra.Command, args []string) { - operation := &TaskProcessListOperation{ - TaskName: args[0], - } - - getTaskProcessList(operation) - }, -} - -func init() { - taskCmd.AddCommand(taskPsCmd) -} - -func getTaskProcessList(operation *TaskProcessListOperation) { - var eniIds []string - - ecs := ECS.New(sess, clusterName) - ec2 := EC2.New(sess) - tasks := ecs.DescribeTasksForTaskGroup(operation.TaskName) - - for _, task := range tasks { - if task.EniId != "" { - eniIds = append(eniIds, task.EniId) - } - } - - if len(tasks) == 0 { - console.InfoExit("No tasks found") - } - - enis := ec2.DescribeNetworkInterfaces(eniIds) - - w := new(tabwriter.Writer) - w.Init(os.Stdout, 0, 8, 1, '\t', 0) - fmt.Fprintln(w, "ID\tIMAGE\tSTATUS\tRUNNING\tIP\tCPU\tMEMORY\t") - - for _, t := range tasks { - fmt.Fprintf(w, "%s\t%s\t%s\t%s\t%s\t%s\t%s\n", - t.TaskId, - t.Image, - Humanize(t.LastStatus), - t.RunningFor(), - enis[t.EniId].PublicIpAddress, - t.Cpu, - t.Memory, - ) - } - - w.Flush() -} diff --git a/cmd/task_run.go b/cmd/task_run.go deleted file mode 100644 index 6f327fa..0000000 --- a/cmd/task_run.go +++ /dev/null @@ -1,210 +0,0 @@ -package cmd - -import ( - CWL "github.com/jpignata/fargate/cloudwatchlogs" - "github.com/jpignata/fargate/console" - "github.com/jpignata/fargate/docker" - EC2 "github.com/jpignata/fargate/ec2" - ECR "github.com/jpignata/fargate/ecr" - ECS "github.com/jpignata/fargate/ecs" - "github.com/jpignata/fargate/git" - IAM "github.com/jpignata/fargate/iam" - "github.com/spf13/cobra" -) - -const typeTask string = "task" - -type TaskRunOperation struct { - Cpu string - EnvVars []ECS.EnvVar - Image string - Memory string - Num int64 - SecurityGroupIds []string - SubnetIds []string - TaskName string - TaskRole string -} - -func (o *TaskRunOperation) Validate() { - err := validateCpuAndMemory(o.Cpu, o.Memory) - - if err != nil { - console.ErrorExit(err, "Invalid settings: %s CPU units / %s MiB", o.Cpu, o.Memory) - } - - if o.Num < 1 { - console.ErrorExit(err, "Invalid number of tasks: %d, num must be > 1", o.Num) - } -} - -func (o *TaskRunOperation) SetEnvVars(inputEnvVars []string) { - o.EnvVars = extractEnvVars(inputEnvVars) -} - -var ( - flagTaskRunNum int64 - flagTaskRunCpu string - flagTaskRunEnvVars []string - flagTaskRunImage string - flagTaskRunMemory string - flagTaskRunSecurityGroupIds []string - flagTaskRunSubnetIds []string - flagTaskRunTaskRole string -) - -var taskRunCmd = &cobra.Command{ - Use: "run ", - Short: "Run new tasks", - Long: `Run new tasks - -You must specify a task group name in order to interact with the task(s) in -subsequent commands to view logs, stop and inspect tasks. Task group names do -not have to be unique -- multiple configurations of task instances can be -started with the same task group. - -Multiple instances of a task can be run by specifying a number in the --num -flag. If no number is specified, a single task instance will be run. - -CPU and memory settings can be optionally specified as CPU units and mebibytes -respectively using the --cpu and --memory flags. Every 1024 CPU units is -equivilent to a single vCPU. AWS Fargate only supports certain combinations of -CPU and memory configurations: - -| CPU (CPU Units) | Memory (MiB) | -| --------------- | ------------------------------------- | -| 256 | 512, 1024, or 2048 | -| 512 | 1024 through 4096 in 1GiB increments | -| 1024 | 2048 through 8192 in 1GiB increments | -| 2048 | 4096 through 16384 in 1GiB increments | -| 4096 | 8192 through 30720 in 1GiB increments | - -If not specified, fargate will launch minimally sized tasks at 0.25 vCPU (256 -CPU units) and 0.5GB (512 MiB) of memory. - -The Docker container image to use in the task can be optionally specified via -the --image flag. If not specified, fargate will build a new Docker container -image from the current working directory and push it to Amazon ECR in a -repository named for the task group. If the current working directory is a git -repository, the container image will be tagged with the short ref of the HEAD -commit. If not, a timestamp in the format of YYYYMMDDHHMMSS will be used. - -Environment variables can be specified via the --env flag. Specify --env with a -key=value parameter multiple times to add multiple variables. - -Security groups can optionally be specified for the task by passing the ---security-group-id flag with a security group ID. To add multiple security -groups, pass --security-group-id with a security group ID multiple times. If ---security-group-id is omitted, a permissive security group will be applied to -the task. - -By default, the task will be created in the default VPC and attached to the -default VPC subnets for each availability zone. You can override this by -specifying explicit subnets by passing the --subnet-id flag with a subnet ID. - -A task role can be optionally specified via the --task-role flag by providing -eith a full IAM role ARN or the name of an IAM role. The tasks will be able to -assume this role.`, - Args: cobra.ExactArgs(1), - Run: func(cmd *cobra.Command, args []string) { - operation := &TaskRunOperation{ - Cpu: flagTaskRunCpu, - Image: flagTaskRunImage, - Memory: flagTaskRunMemory, - Num: flagTaskRunNum, - SecurityGroupIds: flagTaskRunSecurityGroupIds, - SubnetIds: flagTaskRunSubnetIds, - TaskName: args[0], - TaskRole: flagTaskRunTaskRole, - } - - operation.SetEnvVars(flagTaskRunEnvVars) - operation.Validate() - - runTask(operation) - }, -} - -func init() { - taskRunCmd.Flags().Int64VarP(&flagTaskRunNum, "num", "n", 1, "Number of task instances to run") - taskRunCmd.Flags().StringSliceVarP(&flagTaskRunEnvVars, "env", "e", []string{}, "Environment variables to set [e.g. KEY=value] (can be specified multiple times)") - taskRunCmd.Flags().StringVarP(&flagTaskRunCpu, "cpu", "c", "256", "Amount of cpu units to allocate for each task") - taskRunCmd.Flags().StringVarP(&flagTaskRunImage, "image", "i", "", "Docker image to run; if omitted Fargate will build an image from the Dockerfile in the current directory") - taskRunCmd.Flags().StringVarP(&flagTaskRunMemory, "memory", "m", "512", "Amount of MiB to allocate for each task") - taskRunCmd.Flags().StringSliceVar(&flagTaskRunSecurityGroupIds, "security-group-id", []string{}, "ID of a security group to apply to the task (can be specified multiple times)") - taskRunCmd.Flags().StringSliceVar(&flagTaskRunSubnetIds, "subnet-id", []string{}, "ID of a subnet in which to place the task (can be specified multiple times)") - taskRunCmd.Flags().StringVarP(&flagTaskRunTaskRole, "task-role", "", "", "Name or ARN of an IAM role that the tasks can assume") - taskCmd.AddCommand(taskRunCmd) -} - -func runTask(operation *TaskRunOperation) { - cwl := CWL.New(sess) - ec2 := EC2.New(sess) - ecr := ECR.New(sess) - ecs := ECS.New(sess, clusterName) - iam := IAM.New(sess) - ecsTaskExecutionRoleArn := iam.CreateEcsTaskExecutionRole() - logGroupName := cwl.CreateLogGroup(taskLogGroupFormat, operation.TaskName) - - if len(operation.SecurityGroupIds) == 0 { - defaultSecurityGroupID, _ := ec2.GetDefaultSecurityGroupID() - operation.SecurityGroupIds = []string{defaultSecurityGroupID} - } - - if len(operation.SubnetIds) == 0 { - operation.SubnetIds, _ = ec2.GetDefaultSubnetIDs() - } - - if operation.Image == "" { - var repositoryUri, tag string - - if ecr.IsRepositoryCreated(operation.TaskName) { - repositoryUri = ecr.GetRepositoryUri(operation.TaskName) - } else { - repositoryUri = ecr.CreateRepository(operation.TaskName) - } - - if git.IsCwdGitRepo() { - tag = git.GetShortSha() - } else { - tag = docker.GenerateTag() - } - - repository := docker.NewRepository(repositoryUri) - username, password := ecr.GetUsernameAndPassword() - - repository.Login(username, password) - repository.Build(tag) - repository.Push(tag) - - operation.Image = repository.UriFor(tag) - } - - taskDefinitionArn := ecs.CreateTaskDefinition( - &ECS.CreateTaskDefinitionInput{ - Cpu: operation.Cpu, - EnvVars: operation.EnvVars, - ExecutionRoleArn: ecsTaskExecutionRoleArn, - Image: operation.Image, - LogGroupName: logGroupName, - LogRegion: region, - Memory: operation.Memory, - Name: operation.TaskName, - Type: typeTask, - TaskRole: operation.TaskRole, - }, - ) - - ecs.RunTask( - &ECS.RunTaskInput{ - ClusterName: clusterName, - Count: operation.Num, - TaskName: operation.TaskName, - TaskDefinitionArn: taskDefinitionArn, - SubnetIds: operation.SubnetIds, - SecurityGroupIds: operation.SecurityGroupIds, - }, - ) - - console.Info("Running task %s", operation.TaskName) -} diff --git a/cmd/task_stop.go b/cmd/task_stop.go deleted file mode 100644 index a8604cc..0000000 --- a/cmd/task_stop.go +++ /dev/null @@ -1,71 +0,0 @@ -package cmd - -import ( - "github.com/jpignata/fargate/console" - ECS "github.com/jpignata/fargate/ecs" - "github.com/spf13/cobra" -) - -type TaskStopOperation struct { - TaskGroupName string - TaskIds []string -} - -var ( - flagTaskStopTasks []string -) - -var taskStopCmd = &cobra.Command{ - Use: "stop ", - Short: "Stop tasks", - Long: `Stop tasks - - Stops all tasks within a task group if run with only a task group name or stops - individual tasks if one or more tasks are passed via the --task flag. Specify - --task with a task ID parameter multiple times to stop multiple specific tasks.`, - Args: cobra.ExactArgs(1), - Run: func(cmd *cobra.Command, args []string) { - operation := &TaskStopOperation{ - TaskGroupName: args[0], - TaskIds: flagTaskStopTasks, - } - - stopTasks(operation) - }, -} - -func init() { - taskCmd.AddCommand(taskStopCmd) - - taskStopCmd.Flags().StringSliceVarP(&flagTaskStopTasks, "task", "t", []string{}, "Stop specific task instances (can be specified multiple times)") -} - -func stopTasks(operation *TaskStopOperation) { - var taskCount int - - ecs := ECS.New(sess, clusterName) - - if len(operation.TaskIds) > 0 { - taskCount = len(operation.TaskIds) - - ecs.StopTasks(operation.TaskIds) - } else { - var taskIds []string - - tasks := ecs.DescribeTasksForTaskGroup(operation.TaskGroupName) - - for _, task := range tasks { - taskIds = append(taskIds, task.TaskId) - } - - taskCount = len(taskIds) - - ecs.StopTasks(taskIds) - } - - if taskCount == 1 { - console.Info("Stopped %d task", taskCount) - } else { - console.Info("Stopped %d tasks", taskCount) - } -} diff --git a/cmd/vpc_operation.go b/cmd/vpc_operation.go deleted file mode 100644 index a9e612f..0000000 --- a/cmd/vpc_operation.go +++ /dev/null @@ -1,81 +0,0 @@ -package cmd - -import ( - "github.com/jpignata/fargate/ec2" -) - -type vpcOperation struct { - ec2 ec2.Client - output Output - securityGroupIDs []string - subnetIDs []string - vpcID string -} - -func (o *vpcOperation) setSubnetIDs(subnetIDs []string) error { - o.output.Debug("Finding VPC ID [API=ec2 Action=DescribeSubnets]") - vpcID, err := o.ec2.GetSubnetVPCID(subnetIDs[0]) - - if err != nil { - return err - } - - o.subnetIDs = subnetIDs - o.vpcID = vpcID - - return nil -} - -func (o *vpcOperation) setSecurityGroupIDs(securityGroupIDs []string) { - o.securityGroupIDs = securityGroupIDs -} - -func (o *vpcOperation) setDefaultSecurityGroupID() error { - o.output.Debug("Finding default security group [API=ec2 Action=DescribeSecurityGroups]") - defaultSecurityGroupID, err := o.ec2.GetDefaultSecurityGroupID() - - if err != nil { - return err - } - - if defaultSecurityGroupID == "" { - o.output.Debug("Creating default security group [API=ec2 Action=CreateSecurityGroup]") - defaultSecurityGroupID, err = o.ec2.CreateDefaultSecurityGroup() - - if err != nil { - return err - } - - o.output.Debug("Created default security group [ID=%s]", defaultSecurityGroupID) - - o.output.Debug("Configuring default security group [API=ec2 Action=AuthorizeSecurityGroupIngress]") - if err := o.ec2.AuthorizeAllSecurityGroupIngress(defaultSecurityGroupID); err != nil { - return err - } - } - - o.securityGroupIDs = []string{defaultSecurityGroupID} - - return nil -} - -func (o *vpcOperation) setDefaultSubnetIDs() error { - o.output.Debug("Finding default subnets [API=ec2 Action=DescribeSubnets]") - subnetIDs, err := o.ec2.GetDefaultSubnetIDs() - - if err != nil { - return err - } - - o.output.Debug("Finding VPC ID [API=ec2 Action=DescribeSubnets]") - vpcID, err := o.ec2.GetSubnetVPCID(subnetIDs[0]) - - if err != nil { - return err - } - - o.subnetIDs = subnetIDs - o.vpcID = vpcID - - return nil -} diff --git a/cmd/vpc_operation_test.go b/cmd/vpc_operation_test.go deleted file mode 100644 index 0e7ba90..0000000 --- a/cmd/vpc_operation_test.go +++ /dev/null @@ -1,291 +0,0 @@ -package cmd - -import ( - "errors" - "testing" - - "github.com/golang/mock/gomock" - "github.com/jpignata/fargate/cmd/mock" - ec2client "github.com/jpignata/fargate/ec2/mock/client" -) - -func TestSetSubnetIDs(t *testing.T) { - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockEC2Client := ec2client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockEC2Client.EXPECT().GetSubnetVPCID("subnet-1234567").Return("vpc-1234567", nil) - - operation := vpcOperation{ - ec2: mockEC2Client, - output: mockOutput, - } - - err := operation.setSubnetIDs([]string{"subnet-1234567"}) - - if err != nil { - t.Errorf("expected no error, got: %v", err) - } - - if len(operation.subnetIDs) != 1 { - t.Fatalf("expected 1 subnet ID, got: %d", len(operation.subnetIDs)) - } - - if expected := "subnet-1234567"; operation.subnetIDs[0] != expected { - t.Errorf("expected: %s, got: %s", expected, operation.subnetIDs[0]) - } - - if expected := "vpc-1234567"; operation.vpcID != expected { - t.Errorf("expected: %s, got: %s", expected, operation.vpcID) - } -} - -func TestSetSubnetIDsError(t *testing.T) { - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockEC2Client := ec2client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockEC2Client.EXPECT().GetSubnetVPCID("subnet-1234567").Return("", errors.New("boom")) - - operation := vpcOperation{ - ec2: mockEC2Client, - output: mockOutput, - } - - err := operation.setSubnetIDs([]string{"subnet-1234567"}) - - if err == nil { - t.Errorf("expected error, got none") - } - - if expected := "boom"; err.Error() != expected { - t.Errorf("expected: %s, got: %v", expected, err) - } -} - -func TestSetDefaultSecurityGroupID(t *testing.T) { - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockEC2Client := ec2client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockEC2Client.EXPECT().GetDefaultSecurityGroupID().Return("sg-1234567", nil) - - operation := vpcOperation{ - ec2: mockEC2Client, - output: mockOutput, - } - - err := operation.setDefaultSecurityGroupID() - - if err != nil { - t.Errorf("expected no error, got: %v", err) - } - - if len(operation.securityGroupIDs) != 1 { - t.Fatalf("expected 1 security group ID, got: %d", len(operation.securityGroupIDs)) - } - - if expected := "sg-1234567"; operation.securityGroupIDs[0] != expected { - t.Errorf("expected: %s, got: %s", expected, operation.securityGroupIDs[0]) - } -} - -func TestSetDefaultSecurityGroupIDLookupError(t *testing.T) { - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockEC2Client := ec2client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockEC2Client.EXPECT().GetDefaultSecurityGroupID().Return("", errors.New("boom")) - - operation := vpcOperation{ - ec2: mockEC2Client, - output: mockOutput, - } - - err := operation.setDefaultSecurityGroupID() - - if err == nil { - t.Errorf("expected error, got none") - } - - if expected := "boom"; err.Error() != expected { - t.Errorf("expected: %s, got: %v", expected, err) - } -} - -func TestSetDefaultSecurityGroupIDWithCreate(t *testing.T) { - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockEC2Client := ec2client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockEC2Client.EXPECT().GetDefaultSecurityGroupID().Return("", nil) - mockEC2Client.EXPECT().CreateDefaultSecurityGroup().Return("sg-1234567", nil) - mockEC2Client.EXPECT().AuthorizeAllSecurityGroupIngress("sg-1234567").Return(nil) - - operation := vpcOperation{ - ec2: mockEC2Client, - output: mockOutput, - } - - err := operation.setDefaultSecurityGroupID() - - if err != nil { - t.Errorf("expected no error, got: %v", err) - } - - if len(operation.securityGroupIDs) != 1 { - t.Fatalf("expected 1 security group ID, got: %d", len(operation.securityGroupIDs)) - } - - if expected := "sg-1234567"; operation.securityGroupIDs[0] != expected { - t.Errorf("expected: %s, got: %s", expected, operation.securityGroupIDs[0]) - } -} - -func TestSetDefaultSecurityGroupIDWithCreateError(t *testing.T) { - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockEC2Client := ec2client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockEC2Client.EXPECT().GetDefaultSecurityGroupID().Return("", nil) - mockEC2Client.EXPECT().CreateDefaultSecurityGroup().Return("", errors.New("boom")) - - operation := vpcOperation{ - ec2: mockEC2Client, - output: mockOutput, - } - - err := operation.setDefaultSecurityGroupID() - - if err == nil { - t.Errorf("expected error, got none") - } - - if expected := "boom"; err.Error() != expected { - t.Errorf("expected: %s, got: %v", expected, err) - } -} - -func TestSetDefaultSecurityGroupIDWithAuthorizeError(t *testing.T) { - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockEC2Client := ec2client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockEC2Client.EXPECT().GetDefaultSecurityGroupID().Return("", nil) - mockEC2Client.EXPECT().CreateDefaultSecurityGroup().Return("sg-1234567", nil) - mockEC2Client.EXPECT().AuthorizeAllSecurityGroupIngress("sg-1234567").Return(errors.New("boom")) - - operation := vpcOperation{ - ec2: mockEC2Client, - output: mockOutput, - } - - err := operation.setDefaultSecurityGroupID() - - if err == nil { - t.Errorf("expected error, got none") - } - - if expected := "boom"; err.Error() != expected { - t.Errorf("expected: %s, got: %v", expected, err) - } -} - -func TestSetDefaultSubnetIDs(t *testing.T) { - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockEC2Client := ec2client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockEC2Client.EXPECT().GetDefaultSubnetIDs().Return([]string{"subnet-1234567", "subnet-abcdef"}, nil) - mockEC2Client.EXPECT().GetSubnetVPCID("subnet-1234567").Return("vpc-1234567", nil) - - operation := vpcOperation{ - ec2: mockEC2Client, - output: mockOutput, - } - - err := operation.setDefaultSubnetIDs() - - if err != nil { - t.Errorf("expected no error, got: %v", err) - } - - if len(operation.subnetIDs) != 2 { - t.Fatalf("expected 2 subnet IDs, got: %d", len(operation.subnetIDs)) - } - - if expected := "subnet-1234567"; operation.subnetIDs[0] != expected { - t.Errorf("expected: %s, got: %s", expected, operation.subnetIDs[0]) - } - - if expected := "vpc-1234567"; operation.vpcID != expected { - t.Errorf("expected: %s, got: %s", expected, operation.vpcID) - } -} - -func TestSetDefaultSubnetIDsLookupError(t *testing.T) { - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockEC2Client := ec2client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockEC2Client.EXPECT().GetDefaultSubnetIDs().Return([]string{}, errors.New("boom")) - - operation := vpcOperation{ - ec2: mockEC2Client, - output: mockOutput, - } - - err := operation.setDefaultSubnetIDs() - - if err == nil { - t.Errorf("expected error, got none") - } - - if expected := "boom"; err.Error() != expected { - t.Errorf("expected: %s, got: %v", expected, err) - } -} - -func TestSetDefaultSubnetIDsVPCError(t *testing.T) { - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockEC2Client := ec2client.NewMockClient(mockCtrl) - mockOutput := &mock.Output{} - - mockEC2Client.EXPECT().GetDefaultSubnetIDs().Return([]string{"subnet-1234567", "subnet-abcdef"}, nil) - mockEC2Client.EXPECT().GetSubnetVPCID("subnet-1234567").Return("", errors.New("boom")) - - operation := vpcOperation{ - ec2: mockEC2Client, - output: mockOutput, - } - - err := operation.setDefaultSubnetIDs() - - if err == nil { - t.Errorf("expected error, got none") - } - - if expected := "boom"; err.Error() != expected { - t.Errorf("expected: %s, got: %v", expected, err) - } -} diff --git a/docker/main.go b/docker/main.go index bdc56cb..6974a94 100644 --- a/docker/main.go +++ b/docker/main.go @@ -5,7 +5,7 @@ import ( "os/exec" "time" - "github.com/jpignata/fargate/console" + "github.com/turnerlabs/fargate/console" ) const timestampFormat = "20060102150405" diff --git a/ec2/eni.go b/ec2/eni.go index 2ef71ce..ce19f12 100644 --- a/ec2/eni.go +++ b/ec2/eni.go @@ -3,7 +3,7 @@ package ec2 import ( "github.com/aws/aws-sdk-go/aws" awsec2 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/jpignata/fargate/console" + "github.com/turnerlabs/fargate/console" ) type Eni struct { diff --git a/ec2/main.go b/ec2/main.go index b3c11be..3269b95 100644 --- a/ec2/main.go +++ b/ec2/main.go @@ -1,6 +1,6 @@ package ec2 -//go:generate mockgen -package client -destination=mock/client/client.go github.com/jpignata/fargate/ec2 Client +//go:generate mockgen -package client -destination=mock/client/client.go github.com/turnerlabs/fargate/ec2 Client //go:generate mockgen -package sdk -source ../vendor/github.com/aws/aws-sdk-go/service/ec2/ec2iface/interface.go -destination=mock/sdk/ec2iface.go github.com/aws/aws-sdk-go/service/ec2/ec2iface EC2API import ( diff --git a/ec2/mock/client/client.go b/ec2/mock/client/client.go index 0da4bc4..9fcee98 100644 --- a/ec2/mock/client/client.go +++ b/ec2/mock/client/client.go @@ -1,5 +1,5 @@ // Code generated by MockGen. DO NOT EDIT. -// Source: github.com/jpignata/fargate/ec2 (interfaces: Client) +// Source: github.com/turnerlabs/fargate/ec2 (interfaces: Client) // Package client is a generated GoMock package. package client diff --git a/ec2/vpc_test.go b/ec2/vpc_test.go index 08ae026..8f82036 100644 --- a/ec2/vpc_test.go +++ b/ec2/vpc_test.go @@ -8,7 +8,7 @@ import ( "github.com/aws/aws-sdk-go/aws/awserr" awsec2 "github.com/aws/aws-sdk-go/service/ec2" "github.com/golang/mock/gomock" - "github.com/jpignata/fargate/ec2/mock/sdk" + "github.com/turnerlabs/fargate/ec2/mock/sdk" ) func TestGetDefaultSubnetIDs(t *testing.T) { diff --git a/ecr/repository.go b/ecr/repository.go index 210eaca..d6ecfc8 100644 --- a/ecr/repository.go +++ b/ecr/repository.go @@ -7,7 +7,7 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" awsecr "github.com/aws/aws-sdk-go/service/ecr" - "github.com/jpignata/fargate/console" + "github.com/turnerlabs/fargate/console" ) func (ecr *ECR) CreateRepository(repositoryName string) string { diff --git a/ecs/service.go b/ecs/service.go index f31637a..c0a18a5 100644 --- a/ecs/service.go +++ b/ecs/service.go @@ -7,7 +7,7 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" awsecs "github.com/aws/aws-sdk-go/service/ecs" - "github.com/jpignata/fargate/console" + "github.com/turnerlabs/fargate/console" ) type CreateServiceInput struct { diff --git a/ecs/task.go b/ecs/task.go index b7daa4a..ff795f5 100644 --- a/ecs/task.go +++ b/ecs/task.go @@ -8,7 +8,7 @@ import ( "github.com/aws/aws-sdk-go/aws" awsecs "github.com/aws/aws-sdk-go/service/ecs" - "github.com/jpignata/fargate/console" + "github.com/turnerlabs/fargate/console" ) const ( diff --git a/ecs/task_definition.go b/ecs/task_definition.go index 5cd3909..6dd470b 100644 --- a/ecs/task_definition.go +++ b/ecs/task_definition.go @@ -6,7 +6,7 @@ import ( "github.com/aws/aws-sdk-go/aws" awsecs "github.com/aws/aws-sdk-go/service/ecs" - "github.com/jpignata/fargate/console" + "github.com/turnerlabs/fargate/console" ) const logStreamPrefix = "fargate" diff --git a/elbv2/listener.go b/elbv2/listener.go index 5729b3e..6689a04 100644 --- a/elbv2/listener.go +++ b/elbv2/listener.go @@ -8,7 +8,7 @@ import ( "github.com/aws/aws-sdk-go/aws" awselbv2 "github.com/aws/aws-sdk-go/service/elbv2" - "github.com/jpignata/fargate/console" + "github.com/turnerlabs/fargate/console" ) // Listener accepts incoming traffic on a load balancer based upon the provided routing rules. diff --git a/elbv2/listener_test.go b/elbv2/listener_test.go index 46e0eec..e292e9e 100644 --- a/elbv2/listener_test.go +++ b/elbv2/listener_test.go @@ -7,7 +7,7 @@ import ( "github.com/aws/aws-sdk-go/aws" awselbv2 "github.com/aws/aws-sdk-go/service/elbv2" "github.com/golang/mock/gomock" - "github.com/jpignata/fargate/elbv2/mock/sdk" + "github.com/turnerlabs/fargate/elbv2/mock/sdk" ) func TestListenerString(t *testing.T) { diff --git a/elbv2/load_balancer.go b/elbv2/load_balancer.go index 2422c38..e67514b 100644 --- a/elbv2/load_balancer.go +++ b/elbv2/load_balancer.go @@ -5,7 +5,7 @@ import ( "github.com/aws/aws-sdk-go/aws" awselbv2 "github.com/aws/aws-sdk-go/service/elbv2" - "github.com/jpignata/fargate/console" + "github.com/turnerlabs/fargate/console" ) // LoadBalancer represents an Elastic Load Balancing (v2) load balancer. diff --git a/elbv2/load_balancer_test.go b/elbv2/load_balancer_test.go index 47709f1..a015529 100644 --- a/elbv2/load_balancer_test.go +++ b/elbv2/load_balancer_test.go @@ -7,7 +7,7 @@ import ( "github.com/aws/aws-sdk-go/aws" awselbv2 "github.com/aws/aws-sdk-go/service/elbv2" "github.com/golang/mock/gomock" - "github.com/jpignata/fargate/elbv2/mock/sdk" + "github.com/turnerlabs/fargate/elbv2/mock/sdk" ) var ( diff --git a/elbv2/main.go b/elbv2/main.go index 7e2148e..8d2fda9 100644 --- a/elbv2/main.go +++ b/elbv2/main.go @@ -1,7 +1,7 @@ // Package elbv2 is a client for Elastic Load Balancing (v2). package elbv2 -//go:generate mockgen -package client -destination=mock/client/client.go github.com/jpignata/fargate/elbv2 Client +//go:generate mockgen -package client -destination=mock/client/client.go github.com/turnerlabs/fargate/elbv2 Client //go:generate mockgen -package sdk -source ../vendor/github.com/aws/aws-sdk-go/service/elbv2/elbv2iface/interface.go -destination=mock/sdk/elbv2iface.go github.com/aws/aws-sdk-go/service/elbv2/elbv2iface ELBV2API import ( diff --git a/elbv2/mock/client/client.go b/elbv2/mock/client/client.go index ee0429e..b93b739 100644 --- a/elbv2/mock/client/client.go +++ b/elbv2/mock/client/client.go @@ -1,12 +1,12 @@ // Code generated by MockGen. DO NOT EDIT. -// Source: github.com/jpignata/fargate/elbv2 (interfaces: Client) +// Source: github.com/turnerlabs/fargate/elbv2 (interfaces: Client) // Package client is a generated GoMock package. package client import ( gomock "github.com/golang/mock/gomock" - elbv2 "github.com/jpignata/fargate/elbv2" + elbv2 "github.com/turnerlabs/fargate/elbv2" reflect "reflect" ) diff --git a/elbv2/target_group.go b/elbv2/target_group.go index 9acf4f7..a3f5d93 100644 --- a/elbv2/target_group.go +++ b/elbv2/target_group.go @@ -3,7 +3,7 @@ package elbv2 import ( "github.com/aws/aws-sdk-go/aws" awselbv2 "github.com/aws/aws-sdk-go/service/elbv2" - "github.com/jpignata/fargate/console" + "github.com/turnerlabs/fargate/console" ) type TargetGroup struct { diff --git a/elbv2/target_group_test.go b/elbv2/target_group_test.go index e61fbae..dd56d71 100644 --- a/elbv2/target_group_test.go +++ b/elbv2/target_group_test.go @@ -7,7 +7,7 @@ import ( "github.com/aws/aws-sdk-go/aws" awselbv2 "github.com/aws/aws-sdk-go/service/elbv2" "github.com/golang/mock/gomock" - "github.com/jpignata/fargate/elbv2/mock/sdk" + "github.com/turnerlabs/fargate/elbv2/mock/sdk" ) func TestCreateTargetGroup(t *testing.T) { diff --git a/git/main.go b/git/main.go index 685fa74..aaa951b 100644 --- a/git/main.go +++ b/git/main.go @@ -5,7 +5,7 @@ import ( "os/exec" "strings" - "github.com/jpignata/fargate/console" + "github.com/turnerlabs/fargate/console" ) func GetShortSha() string { diff --git a/iam/main.go b/iam/main.go deleted file mode 100644 index a8e7bc8..0000000 --- a/iam/main.go +++ /dev/null @@ -1,16 +0,0 @@ -package iam - -import ( - "github.com/aws/aws-sdk-go/aws/session" - "github.com/aws/aws-sdk-go/service/iam" -) - -type IAM struct { - svc *iam.IAM -} - -func New(sess *session.Session) IAM { - return IAM{ - svc: iam.New(sess), - } -} diff --git a/iam/role.go b/iam/role.go deleted file mode 100644 index f3cfb51..0000000 --- a/iam/role.go +++ /dev/null @@ -1,65 +0,0 @@ -package iam - -import ( - "fmt" - "os" - - "github.com/aws/aws-sdk-go/aws" - awsiam "github.com/aws/aws-sdk-go/service/iam" -) - -const ecsTaskExecutionRoleName = "ecsTaskExecutionRole" -const ecsTaskExecutionPolicyArn = "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy" -const ecsTaskExecutionRoleAssumeRolePolicyDocument = `{ - "Version": "2012-10-17", - "Statement": [ - { - "Sid": "", - "Effect": "Allow", - "Principal": { - "Service": "ecs-tasks.amazonaws.com" - }, - "Action": "sts:AssumeRole" - } - ] -}` - -func (iam *IAM) CreateEcsTaskExecutionRole() string { - getRoleResp, err := iam.svc.GetRole( - &awsiam.GetRoleInput{ - RoleName: aws.String(ecsTaskExecutionRoleName), - }, - ) - - if err == nil { - return *getRoleResp.Role.Arn - } - - createRoleResp, err := iam.svc.CreateRole( - &awsiam.CreateRoleInput{ - AssumeRolePolicyDocument: aws.String(ecsTaskExecutionRoleAssumeRolePolicyDocument), - RoleName: aws.String(ecsTaskExecutionRoleName), - }, - ) - - if err != nil { - fmt.Println(err) - os.Exit(1) - } - - ecsTaskExecutionRoleArn := *createRoleResp.Role.Arn - - _, err = iam.svc.AttachRolePolicy( - &awsiam.AttachRolePolicyInput{ - RoleName: aws.String(ecsTaskExecutionRoleName), - PolicyArn: aws.String(ecsTaskExecutionPolicyArn), - }, - ) - - if err != nil { - fmt.Println(err) - os.Exit(1) - } - - return ecsTaskExecutionRoleArn -} diff --git a/main.go b/main.go index add4ac2..34d308b 100644 --- a/main.go +++ b/main.go @@ -1,11 +1,11 @@ package main import ( - "github.com/jpignata/fargate/cmd" + "github.com/turnerlabs/fargate/cmd" ) var version string func main() { - cmd.Execute() + cmd.Execute(version) } diff --git a/route53/hosted_zone.go b/route53/hosted_zone.go deleted file mode 100644 index 94ec340..0000000 --- a/route53/hosted_zone.go +++ /dev/null @@ -1,134 +0,0 @@ -package route53 - -import ( - "sort" - "strings" - - "github.com/aws/aws-sdk-go/aws" - awsroute53 "github.com/aws/aws-sdk-go/service/route53" -) - -const defaultTTL = 86400 - -// HostedZone is a zone hosted in Amazon Route 53. -type HostedZone struct { - Name string - ID string -} - -func (h HostedZone) isSuperDomainOf(fqdn string) bool { - if !strings.HasSuffix(fqdn, ".") { - fqdn = fqdn + "." - } - - return strings.HasSuffix(fqdn, h.Name) -} - -// HostedZones is a collection of HostedZones. -type HostedZones []HostedZone - -// FindSuperDomainOf searches a HostedZones collection for the zone that is the superdomain of the -// given fully qualified domain name. Returns a HostedZone and a boolean indicating whether a -// match was found. -func (h HostedZones) FindSuperDomainOf(fqdn string) (HostedZone, bool) { - sort.Slice(h, func(i, j int) bool { - return len(h[i].Name) > len(h[j].Name) - }) - - for _, zone := range h { - if zone.isSuperDomainOf(fqdn) { - return zone, true - } - } - - return HostedZone{}, false -} - -// CreateAliasInput holds configuration parameters for CreateAlias. -type CreateAliasInput struct { - HostedZoneID, Name, RecordType, Target, TargetHostedZoneID string -} - -// CreateResourceRecordInput holds configuration parameters for CreateResourceRecord. -type CreateResourceRecordInput struct { - HostedZoneID, RecordType, Name, Value string -} - -// CreateResourceRecord creates a DNS record in an Amazon Route 53 hosted zone. -func (route53 SDKClient) CreateResourceRecord(i CreateResourceRecordInput) (string, error) { - change := &awsroute53.Change{ - Action: aws.String(awsroute53.ChangeActionUpsert), - ResourceRecordSet: &awsroute53.ResourceRecordSet{ - Name: aws.String(i.Name), - Type: aws.String(i.RecordType), - TTL: aws.Int64(defaultTTL), - ResourceRecords: []*awsroute53.ResourceRecord{ - &awsroute53.ResourceRecord{ - Value: aws.String(i.Value), - }, - }, - }, - } - - resp, err := route53.client.ChangeResourceRecordSets( - &awsroute53.ChangeResourceRecordSetsInput{ - HostedZoneId: aws.String(i.HostedZoneID), - ChangeBatch: &awsroute53.ChangeBatch{ - Changes: []*awsroute53.Change{change}, - }, - }, - ) - - return aws.StringValue(resp.ChangeInfo.Id), err -} - -// CreateAlias creates an alias record in an Amazon Route 53 hosted zone. -func (route53 SDKClient) CreateAlias(i CreateAliasInput) (string, error) { - change := &awsroute53.Change{ - Action: aws.String(awsroute53.ChangeActionUpsert), - ResourceRecordSet: &awsroute53.ResourceRecordSet{ - Name: aws.String(i.Name), - Type: aws.String(i.RecordType), - AliasTarget: &awsroute53.AliasTarget{ - DNSName: aws.String(i.Target), - EvaluateTargetHealth: aws.Bool(false), - HostedZoneId: aws.String(i.TargetHostedZoneID), - }, - }, - } - - resp, err := route53.client.ChangeResourceRecordSets( - &awsroute53.ChangeResourceRecordSetsInput{ - HostedZoneId: aws.String(i.HostedZoneID), - ChangeBatch: &awsroute53.ChangeBatch{ - Changes: []*awsroute53.Change{change}, - }, - }, - ) - - return aws.StringValue(resp.ChangeInfo.Id), err -} - -// ListHostedZones returns all Amazon Route 53 zones in the caller's account. -func (route53 SDKClient) ListHostedZones() (HostedZones, error) { - var hostedZones HostedZones - - input := &awsroute53.ListHostedZonesInput{} - handler := func(resp *awsroute53.ListHostedZonesOutput, lastPage bool) bool { - for _, hostedZone := range resp.HostedZones { - hostedZones = append( - hostedZones, - HostedZone{ - Name: aws.StringValue(hostedZone.Name), - ID: aws.StringValue(hostedZone.Id), - }, - ) - } - - return true - } - - err := route53.client.ListHostedZonesPages(input, handler) - - return hostedZones, err -} diff --git a/route53/hosted_zone_test.go b/route53/hosted_zone_test.go deleted file mode 100644 index f31778c..0000000 --- a/route53/hosted_zone_test.go +++ /dev/null @@ -1,210 +0,0 @@ -package route53 - -import ( - "errors" - "testing" - - "github.com/aws/aws-sdk-go/aws" - awsroute53 "github.com/aws/aws-sdk-go/service/route53" - "github.com/golang/mock/gomock" - "github.com/jpignata/fargate/route53/mock/sdk" -) - -func TestHostedZonesFindSuperDomainOf(t *testing.T) { - examplecom := HostedZone{Name: "example.com."} - amazoncom := HostedZone{Name: "amazon.com."} - intexamplecom := HostedZone{Name: "int.example.com."} - - var tests = []struct { - fqdn string - zones HostedZones - zone HostedZone - }{ - {"staging.example.com", HostedZones{examplecom, amazoncom}, examplecom}, - {"mail.int.example.com", HostedZones{examplecom, intexamplecom, amazoncom}, intexamplecom}, - {"www.amazon.com", HostedZones{examplecom, intexamplecom, amazoncom}, amazoncom}, - } - - for _, test := range tests { - zone, ok := test.zones.FindSuperDomainOf(test.fqdn) - - if !ok { - t.Errorf("No match found for %s, expected %s", test.fqdn, test.zone.Name) - } else if zone != test.zone { - t.Errorf("Expected %s to be superdomain of %s, got: %s", test.zone.Name, test.fqdn, zone.Name) - } - } -} - -func TestHostedZonesFindSuperDomainOfNotFound(t *testing.T) { - zones := HostedZones{ - HostedZone{Name: "zombo.com."}, - } - - zone, ok := zones.FindSuperDomainOf("www.example.com") - - if ok { - t.Errorf("%s matched, expected none", zone.Name) - } -} - -func TestListHostedZones(t *testing.T) { - resp := &awsroute53.ListHostedZonesOutput{ - HostedZones: []*awsroute53.HostedZone{ - &awsroute53.HostedZone{Id: aws.String("1"), Name: aws.String("example.com.")}, - &awsroute53.HostedZone{Id: aws.String("2"), Name: aws.String("amazon.com.")}, - }, - } - - mockClient := sdk.MockListHostedZonesPagesClient{Resp: resp} - route53 := SDKClient{client: mockClient} - hostedZones, err := route53.ListHostedZones() - - if err != nil { - t.Errorf("Expected no error, got %+v", err) - } - - if len(hostedZones) != 2 { - t.Errorf("Expected 2 hosted zones, got %d", len(hostedZones)) - } - - if hostedZones[0].Name != "example.com." { - t.Errorf("Expected hosted zone name to be example.com., got %s", hostedZones[0].Name) - } -} - -func TestListHostedZonesError(t *testing.T) { - mockClient := sdk.MockListHostedZonesPagesClient{ - Error: errors.New("boom"), - Resp: &awsroute53.ListHostedZonesOutput{}, - } - route53 := SDKClient{client: mockClient} - hostedZones, err := route53.ListHostedZones() - - if err == nil { - t.Error("Expected error, got none") - } - - if len(hostedZones) > 0 { - t.Errorf("Expected no hosted zones, got %d", len(hostedZones)) - } -} - -func TestCreateResourceRecord(t *testing.T) { - hostedZoneID := "zone1" - hostedZone := HostedZone{Name: "example.com", ID: hostedZoneID} - recordType := "CNAME" - name := "www.example.com" - value := "example.hosted-websites.com" - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockRoute53API := sdk.NewMockRoute53API(mockCtrl) - route53 := SDKClient{client: mockRoute53API} - - i := &awsroute53.ChangeResourceRecordSetsInput{ - HostedZoneId: aws.String(hostedZoneID), - ChangeBatch: &awsroute53.ChangeBatch{ - Changes: []*awsroute53.Change{ - &awsroute53.Change{ - Action: aws.String(awsroute53.ChangeActionUpsert), - ResourceRecordSet: &awsroute53.ResourceRecordSet{ - Name: aws.String(name), - Type: aws.String(recordType), - TTL: aws.Int64(defaultTTL), - ResourceRecords: []*awsroute53.ResourceRecord{ - &awsroute53.ResourceRecord{ - Value: aws.String(value), - }, - }, - }, - }, - }, - }, - } - o := &awsroute53.ChangeResourceRecordSetsOutput{ - ChangeInfo: &awsroute53.ChangeInfo{ - Id: aws.String("1"), - }, - } - - mockRoute53API.EXPECT().ChangeResourceRecordSets(i).Return(o, nil) - - id, err := route53.CreateResourceRecord( - CreateResourceRecordInput{ - HostedZoneID: hostedZone.ID, - RecordType: recordType, - Name: name, - Value: value, - }, - ) - - if id != "1" { - t.Errorf("Expected id == 1, got %s", id) - } - - if err != nil { - t.Errorf("Expected no error, got %v", err) - } -} - -func TestCreateAliasRecord(t *testing.T) { - hostedZoneID := "zone1" - targetHostedZoneID := "zone2" - hostedZone := HostedZone{Name: "example.com", ID: hostedZoneID} - recordType := "A" - name := "www.example.com" - target := "example.load-balancers.com" - - mockCtrl := gomock.NewController(t) - defer mockCtrl.Finish() - - mockRoute53API := sdk.NewMockRoute53API(mockCtrl) - route53 := SDKClient{client: mockRoute53API} - - i := &awsroute53.ChangeResourceRecordSetsInput{ - HostedZoneId: aws.String(hostedZoneID), - ChangeBatch: &awsroute53.ChangeBatch{ - Changes: []*awsroute53.Change{ - &awsroute53.Change{ - Action: aws.String(awsroute53.ChangeActionUpsert), - ResourceRecordSet: &awsroute53.ResourceRecordSet{ - Name: aws.String(name), - Type: aws.String(recordType), - AliasTarget: &awsroute53.AliasTarget{ - DNSName: aws.String(target), - EvaluateTargetHealth: aws.Bool(false), - HostedZoneId: aws.String(targetHostedZoneID), - }, - }, - }, - }, - }, - } - o := &awsroute53.ChangeResourceRecordSetsOutput{ - ChangeInfo: &awsroute53.ChangeInfo{ - Id: aws.String("2"), - }, - } - - mockRoute53API.EXPECT().ChangeResourceRecordSets(i).Return(o, nil) - - id, err := route53.CreateAlias( - CreateAliasInput{ - HostedZoneID: hostedZone.ID, - RecordType: recordType, - Name: name, - Target: target, - TargetHostedZoneID: targetHostedZoneID, - }, - ) - - if id != "2" { - t.Errorf("Expected id == 2, got %s", id) - } - - if err != nil { - t.Errorf("Expected no error, got %v", err) - } -} diff --git a/route53/main.go b/route53/main.go deleted file mode 100644 index 39762a5..0000000 --- a/route53/main.go +++ /dev/null @@ -1,29 +0,0 @@ -package route53 - -//go:generate mockgen -package client -destination=mock/client/client.go github.com/jpignata/fargate/route53 Client -//go:generate mockgen -package sdk -source ../vendor/github.com/aws/aws-sdk-go/service/route53/route53iface/interface.go -destination=mock/sdk/route53iface.go github.com/aws/aws-sdk-go/service/route53/route53iface Route53API - -import ( - "github.com/aws/aws-sdk-go/aws/session" - "github.com/aws/aws-sdk-go/service/route53" - "github.com/aws/aws-sdk-go/service/route53/route53iface" -) - -// Client represents a method for accessing Amazon Route 53. -type Client interface { - CreateAlias(CreateAliasInput) (string, error) - CreateResourceRecord(CreateResourceRecordInput) (string, error) - ListHostedZones() (HostedZones, error) -} - -// SDKClient implements access to Amazon Route 53 via the AWS SDK. -type SDKClient struct { - client route53iface.Route53API -} - -// New returns an SDKClient configured with the given session. -func New(sess *session.Session) SDKClient { - return SDKClient{ - client: route53.New(sess), - } -} diff --git a/route53/mock/client/client.go b/route53/mock/client/client.go deleted file mode 100644 index 2617583..0000000 --- a/route53/mock/client/client.go +++ /dev/null @@ -1,73 +0,0 @@ -// Code generated by MockGen. DO NOT EDIT. -// Source: github.com/jpignata/fargate/route53 (interfaces: Client) - -// Package client is a generated GoMock package. -package client - -import ( - gomock "github.com/golang/mock/gomock" - route53 "github.com/jpignata/fargate/route53" - reflect "reflect" -) - -// MockClient is a mock of Client interface -type MockClient struct { - ctrl *gomock.Controller - recorder *MockClientMockRecorder -} - -// MockClientMockRecorder is the mock recorder for MockClient -type MockClientMockRecorder struct { - mock *MockClient -} - -// NewMockClient creates a new mock instance -func NewMockClient(ctrl *gomock.Controller) *MockClient { - mock := &MockClient{ctrl: ctrl} - mock.recorder = &MockClientMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use -func (m *MockClient) EXPECT() *MockClientMockRecorder { - return m.recorder -} - -// CreateAlias mocks base method -func (m *MockClient) CreateAlias(arg0 route53.CreateAliasInput) (string, error) { - ret := m.ctrl.Call(m, "CreateAlias", arg0) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateAlias indicates an expected call of CreateAlias -func (mr *MockClientMockRecorder) CreateAlias(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateAlias", reflect.TypeOf((*MockClient)(nil).CreateAlias), arg0) -} - -// CreateResourceRecord mocks base method -func (m *MockClient) CreateResourceRecord(arg0 route53.CreateResourceRecordInput) (string, error) { - ret := m.ctrl.Call(m, "CreateResourceRecord", arg0) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateResourceRecord indicates an expected call of CreateResourceRecord -func (mr *MockClientMockRecorder) CreateResourceRecord(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateResourceRecord", reflect.TypeOf((*MockClient)(nil).CreateResourceRecord), arg0) -} - -// ListHostedZones mocks base method -func (m *MockClient) ListHostedZones() (route53.HostedZones, error) { - ret := m.ctrl.Call(m, "ListHostedZones") - ret0, _ := ret[0].(route53.HostedZones) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListHostedZones indicates an expected call of ListHostedZones -func (mr *MockClientMockRecorder) ListHostedZones() *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListHostedZones", reflect.TypeOf((*MockClient)(nil).ListHostedZones)) -} diff --git a/route53/mock/sdk/paginators.go b/route53/mock/sdk/paginators.go deleted file mode 100644 index 841f3fd..0000000 --- a/route53/mock/sdk/paginators.go +++ /dev/null @@ -1,22 +0,0 @@ -package sdk - -import ( - "github.com/aws/aws-sdk-go/service/route53" - "github.com/aws/aws-sdk-go/service/route53/route53iface" -) - -type MockListHostedZonesPagesClient struct { - route53iface.Route53API - Resp *route53.ListHostedZonesOutput - Error error -} - -func (m MockListHostedZonesPagesClient) ListHostedZonesPages(in *route53.ListHostedZonesInput, fn func(*route53.ListHostedZonesOutput, bool) bool) error { - if m.Error != nil { - return m.Error - } - - fn(m.Resp, true) - - return nil -} diff --git a/route53/mock/sdk/route53iface.go b/route53/mock/sdk/route53iface.go deleted file mode 100644 index 1db4d8b..0000000 --- a/route53/mock/sdk/route53iface.go +++ /dev/null @@ -1,2616 +0,0 @@ -// Code generated by MockGen. DO NOT EDIT. -// Source: ../vendor/github.com/aws/aws-sdk-go/service/route53/route53iface/interface.go - -// Package sdk is a generated GoMock package. -package sdk - -import ( - aws "github.com/aws/aws-sdk-go/aws" - request "github.com/aws/aws-sdk-go/aws/request" - route53 "github.com/aws/aws-sdk-go/service/route53" - gomock "github.com/golang/mock/gomock" - reflect "reflect" -) - -// MockRoute53API is a mock of Route53API interface -type MockRoute53API struct { - ctrl *gomock.Controller - recorder *MockRoute53APIMockRecorder -} - -// MockRoute53APIMockRecorder is the mock recorder for MockRoute53API -type MockRoute53APIMockRecorder struct { - mock *MockRoute53API -} - -// NewMockRoute53API creates a new mock instance -func NewMockRoute53API(ctrl *gomock.Controller) *MockRoute53API { - mock := &MockRoute53API{ctrl: ctrl} - mock.recorder = &MockRoute53APIMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use -func (m *MockRoute53API) EXPECT() *MockRoute53APIMockRecorder { - return m.recorder -} - -// AssociateVPCWithHostedZone mocks base method -func (m *MockRoute53API) AssociateVPCWithHostedZone(arg0 *route53.AssociateVPCWithHostedZoneInput) (*route53.AssociateVPCWithHostedZoneOutput, error) { - ret := m.ctrl.Call(m, "AssociateVPCWithHostedZone", arg0) - ret0, _ := ret[0].(*route53.AssociateVPCWithHostedZoneOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// AssociateVPCWithHostedZone indicates an expected call of AssociateVPCWithHostedZone -func (mr *MockRoute53APIMockRecorder) AssociateVPCWithHostedZone(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AssociateVPCWithHostedZone", reflect.TypeOf((*MockRoute53API)(nil).AssociateVPCWithHostedZone), arg0) -} - -// AssociateVPCWithHostedZoneWithContext mocks base method -func (m *MockRoute53API) AssociateVPCWithHostedZoneWithContext(arg0 aws.Context, arg1 *route53.AssociateVPCWithHostedZoneInput, arg2 ...request.Option) (*route53.AssociateVPCWithHostedZoneOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "AssociateVPCWithHostedZoneWithContext", varargs...) - ret0, _ := ret[0].(*route53.AssociateVPCWithHostedZoneOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// AssociateVPCWithHostedZoneWithContext indicates an expected call of AssociateVPCWithHostedZoneWithContext -func (mr *MockRoute53APIMockRecorder) AssociateVPCWithHostedZoneWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AssociateVPCWithHostedZoneWithContext", reflect.TypeOf((*MockRoute53API)(nil).AssociateVPCWithHostedZoneWithContext), varargs...) -} - -// AssociateVPCWithHostedZoneRequest mocks base method -func (m *MockRoute53API) AssociateVPCWithHostedZoneRequest(arg0 *route53.AssociateVPCWithHostedZoneInput) (*request.Request, *route53.AssociateVPCWithHostedZoneOutput) { - ret := m.ctrl.Call(m, "AssociateVPCWithHostedZoneRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.AssociateVPCWithHostedZoneOutput) - return ret0, ret1 -} - -// AssociateVPCWithHostedZoneRequest indicates an expected call of AssociateVPCWithHostedZoneRequest -func (mr *MockRoute53APIMockRecorder) AssociateVPCWithHostedZoneRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AssociateVPCWithHostedZoneRequest", reflect.TypeOf((*MockRoute53API)(nil).AssociateVPCWithHostedZoneRequest), arg0) -} - -// ChangeResourceRecordSets mocks base method -func (m *MockRoute53API) ChangeResourceRecordSets(arg0 *route53.ChangeResourceRecordSetsInput) (*route53.ChangeResourceRecordSetsOutput, error) { - ret := m.ctrl.Call(m, "ChangeResourceRecordSets", arg0) - ret0, _ := ret[0].(*route53.ChangeResourceRecordSetsOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ChangeResourceRecordSets indicates an expected call of ChangeResourceRecordSets -func (mr *MockRoute53APIMockRecorder) ChangeResourceRecordSets(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChangeResourceRecordSets", reflect.TypeOf((*MockRoute53API)(nil).ChangeResourceRecordSets), arg0) -} - -// ChangeResourceRecordSetsWithContext mocks base method -func (m *MockRoute53API) ChangeResourceRecordSetsWithContext(arg0 aws.Context, arg1 *route53.ChangeResourceRecordSetsInput, arg2 ...request.Option) (*route53.ChangeResourceRecordSetsOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ChangeResourceRecordSetsWithContext", varargs...) - ret0, _ := ret[0].(*route53.ChangeResourceRecordSetsOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ChangeResourceRecordSetsWithContext indicates an expected call of ChangeResourceRecordSetsWithContext -func (mr *MockRoute53APIMockRecorder) ChangeResourceRecordSetsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChangeResourceRecordSetsWithContext", reflect.TypeOf((*MockRoute53API)(nil).ChangeResourceRecordSetsWithContext), varargs...) -} - -// ChangeResourceRecordSetsRequest mocks base method -func (m *MockRoute53API) ChangeResourceRecordSetsRequest(arg0 *route53.ChangeResourceRecordSetsInput) (*request.Request, *route53.ChangeResourceRecordSetsOutput) { - ret := m.ctrl.Call(m, "ChangeResourceRecordSetsRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.ChangeResourceRecordSetsOutput) - return ret0, ret1 -} - -// ChangeResourceRecordSetsRequest indicates an expected call of ChangeResourceRecordSetsRequest -func (mr *MockRoute53APIMockRecorder) ChangeResourceRecordSetsRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChangeResourceRecordSetsRequest", reflect.TypeOf((*MockRoute53API)(nil).ChangeResourceRecordSetsRequest), arg0) -} - -// ChangeTagsForResource mocks base method -func (m *MockRoute53API) ChangeTagsForResource(arg0 *route53.ChangeTagsForResourceInput) (*route53.ChangeTagsForResourceOutput, error) { - ret := m.ctrl.Call(m, "ChangeTagsForResource", arg0) - ret0, _ := ret[0].(*route53.ChangeTagsForResourceOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ChangeTagsForResource indicates an expected call of ChangeTagsForResource -func (mr *MockRoute53APIMockRecorder) ChangeTagsForResource(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChangeTagsForResource", reflect.TypeOf((*MockRoute53API)(nil).ChangeTagsForResource), arg0) -} - -// ChangeTagsForResourceWithContext mocks base method -func (m *MockRoute53API) ChangeTagsForResourceWithContext(arg0 aws.Context, arg1 *route53.ChangeTagsForResourceInput, arg2 ...request.Option) (*route53.ChangeTagsForResourceOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ChangeTagsForResourceWithContext", varargs...) - ret0, _ := ret[0].(*route53.ChangeTagsForResourceOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ChangeTagsForResourceWithContext indicates an expected call of ChangeTagsForResourceWithContext -func (mr *MockRoute53APIMockRecorder) ChangeTagsForResourceWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChangeTagsForResourceWithContext", reflect.TypeOf((*MockRoute53API)(nil).ChangeTagsForResourceWithContext), varargs...) -} - -// ChangeTagsForResourceRequest mocks base method -func (m *MockRoute53API) ChangeTagsForResourceRequest(arg0 *route53.ChangeTagsForResourceInput) (*request.Request, *route53.ChangeTagsForResourceOutput) { - ret := m.ctrl.Call(m, "ChangeTagsForResourceRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.ChangeTagsForResourceOutput) - return ret0, ret1 -} - -// ChangeTagsForResourceRequest indicates an expected call of ChangeTagsForResourceRequest -func (mr *MockRoute53APIMockRecorder) ChangeTagsForResourceRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChangeTagsForResourceRequest", reflect.TypeOf((*MockRoute53API)(nil).ChangeTagsForResourceRequest), arg0) -} - -// CreateHealthCheck mocks base method -func (m *MockRoute53API) CreateHealthCheck(arg0 *route53.CreateHealthCheckInput) (*route53.CreateHealthCheckOutput, error) { - ret := m.ctrl.Call(m, "CreateHealthCheck", arg0) - ret0, _ := ret[0].(*route53.CreateHealthCheckOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateHealthCheck indicates an expected call of CreateHealthCheck -func (mr *MockRoute53APIMockRecorder) CreateHealthCheck(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateHealthCheck", reflect.TypeOf((*MockRoute53API)(nil).CreateHealthCheck), arg0) -} - -// CreateHealthCheckWithContext mocks base method -func (m *MockRoute53API) CreateHealthCheckWithContext(arg0 aws.Context, arg1 *route53.CreateHealthCheckInput, arg2 ...request.Option) (*route53.CreateHealthCheckOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "CreateHealthCheckWithContext", varargs...) - ret0, _ := ret[0].(*route53.CreateHealthCheckOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateHealthCheckWithContext indicates an expected call of CreateHealthCheckWithContext -func (mr *MockRoute53APIMockRecorder) CreateHealthCheckWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateHealthCheckWithContext", reflect.TypeOf((*MockRoute53API)(nil).CreateHealthCheckWithContext), varargs...) -} - -// CreateHealthCheckRequest mocks base method -func (m *MockRoute53API) CreateHealthCheckRequest(arg0 *route53.CreateHealthCheckInput) (*request.Request, *route53.CreateHealthCheckOutput) { - ret := m.ctrl.Call(m, "CreateHealthCheckRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.CreateHealthCheckOutput) - return ret0, ret1 -} - -// CreateHealthCheckRequest indicates an expected call of CreateHealthCheckRequest -func (mr *MockRoute53APIMockRecorder) CreateHealthCheckRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateHealthCheckRequest", reflect.TypeOf((*MockRoute53API)(nil).CreateHealthCheckRequest), arg0) -} - -// CreateHostedZone mocks base method -func (m *MockRoute53API) CreateHostedZone(arg0 *route53.CreateHostedZoneInput) (*route53.CreateHostedZoneOutput, error) { - ret := m.ctrl.Call(m, "CreateHostedZone", arg0) - ret0, _ := ret[0].(*route53.CreateHostedZoneOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateHostedZone indicates an expected call of CreateHostedZone -func (mr *MockRoute53APIMockRecorder) CreateHostedZone(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateHostedZone", reflect.TypeOf((*MockRoute53API)(nil).CreateHostedZone), arg0) -} - -// CreateHostedZoneWithContext mocks base method -func (m *MockRoute53API) CreateHostedZoneWithContext(arg0 aws.Context, arg1 *route53.CreateHostedZoneInput, arg2 ...request.Option) (*route53.CreateHostedZoneOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "CreateHostedZoneWithContext", varargs...) - ret0, _ := ret[0].(*route53.CreateHostedZoneOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateHostedZoneWithContext indicates an expected call of CreateHostedZoneWithContext -func (mr *MockRoute53APIMockRecorder) CreateHostedZoneWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateHostedZoneWithContext", reflect.TypeOf((*MockRoute53API)(nil).CreateHostedZoneWithContext), varargs...) -} - -// CreateHostedZoneRequest mocks base method -func (m *MockRoute53API) CreateHostedZoneRequest(arg0 *route53.CreateHostedZoneInput) (*request.Request, *route53.CreateHostedZoneOutput) { - ret := m.ctrl.Call(m, "CreateHostedZoneRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.CreateHostedZoneOutput) - return ret0, ret1 -} - -// CreateHostedZoneRequest indicates an expected call of CreateHostedZoneRequest -func (mr *MockRoute53APIMockRecorder) CreateHostedZoneRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateHostedZoneRequest", reflect.TypeOf((*MockRoute53API)(nil).CreateHostedZoneRequest), arg0) -} - -// CreateQueryLoggingConfig mocks base method -func (m *MockRoute53API) CreateQueryLoggingConfig(arg0 *route53.CreateQueryLoggingConfigInput) (*route53.CreateQueryLoggingConfigOutput, error) { - ret := m.ctrl.Call(m, "CreateQueryLoggingConfig", arg0) - ret0, _ := ret[0].(*route53.CreateQueryLoggingConfigOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateQueryLoggingConfig indicates an expected call of CreateQueryLoggingConfig -func (mr *MockRoute53APIMockRecorder) CreateQueryLoggingConfig(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateQueryLoggingConfig", reflect.TypeOf((*MockRoute53API)(nil).CreateQueryLoggingConfig), arg0) -} - -// CreateQueryLoggingConfigWithContext mocks base method -func (m *MockRoute53API) CreateQueryLoggingConfigWithContext(arg0 aws.Context, arg1 *route53.CreateQueryLoggingConfigInput, arg2 ...request.Option) (*route53.CreateQueryLoggingConfigOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "CreateQueryLoggingConfigWithContext", varargs...) - ret0, _ := ret[0].(*route53.CreateQueryLoggingConfigOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateQueryLoggingConfigWithContext indicates an expected call of CreateQueryLoggingConfigWithContext -func (mr *MockRoute53APIMockRecorder) CreateQueryLoggingConfigWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateQueryLoggingConfigWithContext", reflect.TypeOf((*MockRoute53API)(nil).CreateQueryLoggingConfigWithContext), varargs...) -} - -// CreateQueryLoggingConfigRequest mocks base method -func (m *MockRoute53API) CreateQueryLoggingConfigRequest(arg0 *route53.CreateQueryLoggingConfigInput) (*request.Request, *route53.CreateQueryLoggingConfigOutput) { - ret := m.ctrl.Call(m, "CreateQueryLoggingConfigRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.CreateQueryLoggingConfigOutput) - return ret0, ret1 -} - -// CreateQueryLoggingConfigRequest indicates an expected call of CreateQueryLoggingConfigRequest -func (mr *MockRoute53APIMockRecorder) CreateQueryLoggingConfigRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateQueryLoggingConfigRequest", reflect.TypeOf((*MockRoute53API)(nil).CreateQueryLoggingConfigRequest), arg0) -} - -// CreateReusableDelegationSet mocks base method -func (m *MockRoute53API) CreateReusableDelegationSet(arg0 *route53.CreateReusableDelegationSetInput) (*route53.CreateReusableDelegationSetOutput, error) { - ret := m.ctrl.Call(m, "CreateReusableDelegationSet", arg0) - ret0, _ := ret[0].(*route53.CreateReusableDelegationSetOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateReusableDelegationSet indicates an expected call of CreateReusableDelegationSet -func (mr *MockRoute53APIMockRecorder) CreateReusableDelegationSet(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateReusableDelegationSet", reflect.TypeOf((*MockRoute53API)(nil).CreateReusableDelegationSet), arg0) -} - -// CreateReusableDelegationSetWithContext mocks base method -func (m *MockRoute53API) CreateReusableDelegationSetWithContext(arg0 aws.Context, arg1 *route53.CreateReusableDelegationSetInput, arg2 ...request.Option) (*route53.CreateReusableDelegationSetOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "CreateReusableDelegationSetWithContext", varargs...) - ret0, _ := ret[0].(*route53.CreateReusableDelegationSetOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateReusableDelegationSetWithContext indicates an expected call of CreateReusableDelegationSetWithContext -func (mr *MockRoute53APIMockRecorder) CreateReusableDelegationSetWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateReusableDelegationSetWithContext", reflect.TypeOf((*MockRoute53API)(nil).CreateReusableDelegationSetWithContext), varargs...) -} - -// CreateReusableDelegationSetRequest mocks base method -func (m *MockRoute53API) CreateReusableDelegationSetRequest(arg0 *route53.CreateReusableDelegationSetInput) (*request.Request, *route53.CreateReusableDelegationSetOutput) { - ret := m.ctrl.Call(m, "CreateReusableDelegationSetRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.CreateReusableDelegationSetOutput) - return ret0, ret1 -} - -// CreateReusableDelegationSetRequest indicates an expected call of CreateReusableDelegationSetRequest -func (mr *MockRoute53APIMockRecorder) CreateReusableDelegationSetRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateReusableDelegationSetRequest", reflect.TypeOf((*MockRoute53API)(nil).CreateReusableDelegationSetRequest), arg0) -} - -// CreateTrafficPolicy mocks base method -func (m *MockRoute53API) CreateTrafficPolicy(arg0 *route53.CreateTrafficPolicyInput) (*route53.CreateTrafficPolicyOutput, error) { - ret := m.ctrl.Call(m, "CreateTrafficPolicy", arg0) - ret0, _ := ret[0].(*route53.CreateTrafficPolicyOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateTrafficPolicy indicates an expected call of CreateTrafficPolicy -func (mr *MockRoute53APIMockRecorder) CreateTrafficPolicy(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateTrafficPolicy", reflect.TypeOf((*MockRoute53API)(nil).CreateTrafficPolicy), arg0) -} - -// CreateTrafficPolicyWithContext mocks base method -func (m *MockRoute53API) CreateTrafficPolicyWithContext(arg0 aws.Context, arg1 *route53.CreateTrafficPolicyInput, arg2 ...request.Option) (*route53.CreateTrafficPolicyOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "CreateTrafficPolicyWithContext", varargs...) - ret0, _ := ret[0].(*route53.CreateTrafficPolicyOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateTrafficPolicyWithContext indicates an expected call of CreateTrafficPolicyWithContext -func (mr *MockRoute53APIMockRecorder) CreateTrafficPolicyWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateTrafficPolicyWithContext", reflect.TypeOf((*MockRoute53API)(nil).CreateTrafficPolicyWithContext), varargs...) -} - -// CreateTrafficPolicyRequest mocks base method -func (m *MockRoute53API) CreateTrafficPolicyRequest(arg0 *route53.CreateTrafficPolicyInput) (*request.Request, *route53.CreateTrafficPolicyOutput) { - ret := m.ctrl.Call(m, "CreateTrafficPolicyRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.CreateTrafficPolicyOutput) - return ret0, ret1 -} - -// CreateTrafficPolicyRequest indicates an expected call of CreateTrafficPolicyRequest -func (mr *MockRoute53APIMockRecorder) CreateTrafficPolicyRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateTrafficPolicyRequest", reflect.TypeOf((*MockRoute53API)(nil).CreateTrafficPolicyRequest), arg0) -} - -// CreateTrafficPolicyInstance mocks base method -func (m *MockRoute53API) CreateTrafficPolicyInstance(arg0 *route53.CreateTrafficPolicyInstanceInput) (*route53.CreateTrafficPolicyInstanceOutput, error) { - ret := m.ctrl.Call(m, "CreateTrafficPolicyInstance", arg0) - ret0, _ := ret[0].(*route53.CreateTrafficPolicyInstanceOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateTrafficPolicyInstance indicates an expected call of CreateTrafficPolicyInstance -func (mr *MockRoute53APIMockRecorder) CreateTrafficPolicyInstance(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateTrafficPolicyInstance", reflect.TypeOf((*MockRoute53API)(nil).CreateTrafficPolicyInstance), arg0) -} - -// CreateTrafficPolicyInstanceWithContext mocks base method -func (m *MockRoute53API) CreateTrafficPolicyInstanceWithContext(arg0 aws.Context, arg1 *route53.CreateTrafficPolicyInstanceInput, arg2 ...request.Option) (*route53.CreateTrafficPolicyInstanceOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "CreateTrafficPolicyInstanceWithContext", varargs...) - ret0, _ := ret[0].(*route53.CreateTrafficPolicyInstanceOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateTrafficPolicyInstanceWithContext indicates an expected call of CreateTrafficPolicyInstanceWithContext -func (mr *MockRoute53APIMockRecorder) CreateTrafficPolicyInstanceWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateTrafficPolicyInstanceWithContext", reflect.TypeOf((*MockRoute53API)(nil).CreateTrafficPolicyInstanceWithContext), varargs...) -} - -// CreateTrafficPolicyInstanceRequest mocks base method -func (m *MockRoute53API) CreateTrafficPolicyInstanceRequest(arg0 *route53.CreateTrafficPolicyInstanceInput) (*request.Request, *route53.CreateTrafficPolicyInstanceOutput) { - ret := m.ctrl.Call(m, "CreateTrafficPolicyInstanceRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.CreateTrafficPolicyInstanceOutput) - return ret0, ret1 -} - -// CreateTrafficPolicyInstanceRequest indicates an expected call of CreateTrafficPolicyInstanceRequest -func (mr *MockRoute53APIMockRecorder) CreateTrafficPolicyInstanceRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateTrafficPolicyInstanceRequest", reflect.TypeOf((*MockRoute53API)(nil).CreateTrafficPolicyInstanceRequest), arg0) -} - -// CreateTrafficPolicyVersion mocks base method -func (m *MockRoute53API) CreateTrafficPolicyVersion(arg0 *route53.CreateTrafficPolicyVersionInput) (*route53.CreateTrafficPolicyVersionOutput, error) { - ret := m.ctrl.Call(m, "CreateTrafficPolicyVersion", arg0) - ret0, _ := ret[0].(*route53.CreateTrafficPolicyVersionOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateTrafficPolicyVersion indicates an expected call of CreateTrafficPolicyVersion -func (mr *MockRoute53APIMockRecorder) CreateTrafficPolicyVersion(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateTrafficPolicyVersion", reflect.TypeOf((*MockRoute53API)(nil).CreateTrafficPolicyVersion), arg0) -} - -// CreateTrafficPolicyVersionWithContext mocks base method -func (m *MockRoute53API) CreateTrafficPolicyVersionWithContext(arg0 aws.Context, arg1 *route53.CreateTrafficPolicyVersionInput, arg2 ...request.Option) (*route53.CreateTrafficPolicyVersionOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "CreateTrafficPolicyVersionWithContext", varargs...) - ret0, _ := ret[0].(*route53.CreateTrafficPolicyVersionOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateTrafficPolicyVersionWithContext indicates an expected call of CreateTrafficPolicyVersionWithContext -func (mr *MockRoute53APIMockRecorder) CreateTrafficPolicyVersionWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateTrafficPolicyVersionWithContext", reflect.TypeOf((*MockRoute53API)(nil).CreateTrafficPolicyVersionWithContext), varargs...) -} - -// CreateTrafficPolicyVersionRequest mocks base method -func (m *MockRoute53API) CreateTrafficPolicyVersionRequest(arg0 *route53.CreateTrafficPolicyVersionInput) (*request.Request, *route53.CreateTrafficPolicyVersionOutput) { - ret := m.ctrl.Call(m, "CreateTrafficPolicyVersionRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.CreateTrafficPolicyVersionOutput) - return ret0, ret1 -} - -// CreateTrafficPolicyVersionRequest indicates an expected call of CreateTrafficPolicyVersionRequest -func (mr *MockRoute53APIMockRecorder) CreateTrafficPolicyVersionRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateTrafficPolicyVersionRequest", reflect.TypeOf((*MockRoute53API)(nil).CreateTrafficPolicyVersionRequest), arg0) -} - -// CreateVPCAssociationAuthorization mocks base method -func (m *MockRoute53API) CreateVPCAssociationAuthorization(arg0 *route53.CreateVPCAssociationAuthorizationInput) (*route53.CreateVPCAssociationAuthorizationOutput, error) { - ret := m.ctrl.Call(m, "CreateVPCAssociationAuthorization", arg0) - ret0, _ := ret[0].(*route53.CreateVPCAssociationAuthorizationOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateVPCAssociationAuthorization indicates an expected call of CreateVPCAssociationAuthorization -func (mr *MockRoute53APIMockRecorder) CreateVPCAssociationAuthorization(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateVPCAssociationAuthorization", reflect.TypeOf((*MockRoute53API)(nil).CreateVPCAssociationAuthorization), arg0) -} - -// CreateVPCAssociationAuthorizationWithContext mocks base method -func (m *MockRoute53API) CreateVPCAssociationAuthorizationWithContext(arg0 aws.Context, arg1 *route53.CreateVPCAssociationAuthorizationInput, arg2 ...request.Option) (*route53.CreateVPCAssociationAuthorizationOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "CreateVPCAssociationAuthorizationWithContext", varargs...) - ret0, _ := ret[0].(*route53.CreateVPCAssociationAuthorizationOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateVPCAssociationAuthorizationWithContext indicates an expected call of CreateVPCAssociationAuthorizationWithContext -func (mr *MockRoute53APIMockRecorder) CreateVPCAssociationAuthorizationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateVPCAssociationAuthorizationWithContext", reflect.TypeOf((*MockRoute53API)(nil).CreateVPCAssociationAuthorizationWithContext), varargs...) -} - -// CreateVPCAssociationAuthorizationRequest mocks base method -func (m *MockRoute53API) CreateVPCAssociationAuthorizationRequest(arg0 *route53.CreateVPCAssociationAuthorizationInput) (*request.Request, *route53.CreateVPCAssociationAuthorizationOutput) { - ret := m.ctrl.Call(m, "CreateVPCAssociationAuthorizationRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.CreateVPCAssociationAuthorizationOutput) - return ret0, ret1 -} - -// CreateVPCAssociationAuthorizationRequest indicates an expected call of CreateVPCAssociationAuthorizationRequest -func (mr *MockRoute53APIMockRecorder) CreateVPCAssociationAuthorizationRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateVPCAssociationAuthorizationRequest", reflect.TypeOf((*MockRoute53API)(nil).CreateVPCAssociationAuthorizationRequest), arg0) -} - -// DeleteHealthCheck mocks base method -func (m *MockRoute53API) DeleteHealthCheck(arg0 *route53.DeleteHealthCheckInput) (*route53.DeleteHealthCheckOutput, error) { - ret := m.ctrl.Call(m, "DeleteHealthCheck", arg0) - ret0, _ := ret[0].(*route53.DeleteHealthCheckOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteHealthCheck indicates an expected call of DeleteHealthCheck -func (mr *MockRoute53APIMockRecorder) DeleteHealthCheck(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteHealthCheck", reflect.TypeOf((*MockRoute53API)(nil).DeleteHealthCheck), arg0) -} - -// DeleteHealthCheckWithContext mocks base method -func (m *MockRoute53API) DeleteHealthCheckWithContext(arg0 aws.Context, arg1 *route53.DeleteHealthCheckInput, arg2 ...request.Option) (*route53.DeleteHealthCheckOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "DeleteHealthCheckWithContext", varargs...) - ret0, _ := ret[0].(*route53.DeleteHealthCheckOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteHealthCheckWithContext indicates an expected call of DeleteHealthCheckWithContext -func (mr *MockRoute53APIMockRecorder) DeleteHealthCheckWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteHealthCheckWithContext", reflect.TypeOf((*MockRoute53API)(nil).DeleteHealthCheckWithContext), varargs...) -} - -// DeleteHealthCheckRequest mocks base method -func (m *MockRoute53API) DeleteHealthCheckRequest(arg0 *route53.DeleteHealthCheckInput) (*request.Request, *route53.DeleteHealthCheckOutput) { - ret := m.ctrl.Call(m, "DeleteHealthCheckRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.DeleteHealthCheckOutput) - return ret0, ret1 -} - -// DeleteHealthCheckRequest indicates an expected call of DeleteHealthCheckRequest -func (mr *MockRoute53APIMockRecorder) DeleteHealthCheckRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteHealthCheckRequest", reflect.TypeOf((*MockRoute53API)(nil).DeleteHealthCheckRequest), arg0) -} - -// DeleteHostedZone mocks base method -func (m *MockRoute53API) DeleteHostedZone(arg0 *route53.DeleteHostedZoneInput) (*route53.DeleteHostedZoneOutput, error) { - ret := m.ctrl.Call(m, "DeleteHostedZone", arg0) - ret0, _ := ret[0].(*route53.DeleteHostedZoneOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteHostedZone indicates an expected call of DeleteHostedZone -func (mr *MockRoute53APIMockRecorder) DeleteHostedZone(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteHostedZone", reflect.TypeOf((*MockRoute53API)(nil).DeleteHostedZone), arg0) -} - -// DeleteHostedZoneWithContext mocks base method -func (m *MockRoute53API) DeleteHostedZoneWithContext(arg0 aws.Context, arg1 *route53.DeleteHostedZoneInput, arg2 ...request.Option) (*route53.DeleteHostedZoneOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "DeleteHostedZoneWithContext", varargs...) - ret0, _ := ret[0].(*route53.DeleteHostedZoneOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteHostedZoneWithContext indicates an expected call of DeleteHostedZoneWithContext -func (mr *MockRoute53APIMockRecorder) DeleteHostedZoneWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteHostedZoneWithContext", reflect.TypeOf((*MockRoute53API)(nil).DeleteHostedZoneWithContext), varargs...) -} - -// DeleteHostedZoneRequest mocks base method -func (m *MockRoute53API) DeleteHostedZoneRequest(arg0 *route53.DeleteHostedZoneInput) (*request.Request, *route53.DeleteHostedZoneOutput) { - ret := m.ctrl.Call(m, "DeleteHostedZoneRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.DeleteHostedZoneOutput) - return ret0, ret1 -} - -// DeleteHostedZoneRequest indicates an expected call of DeleteHostedZoneRequest -func (mr *MockRoute53APIMockRecorder) DeleteHostedZoneRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteHostedZoneRequest", reflect.TypeOf((*MockRoute53API)(nil).DeleteHostedZoneRequest), arg0) -} - -// DeleteQueryLoggingConfig mocks base method -func (m *MockRoute53API) DeleteQueryLoggingConfig(arg0 *route53.DeleteQueryLoggingConfigInput) (*route53.DeleteQueryLoggingConfigOutput, error) { - ret := m.ctrl.Call(m, "DeleteQueryLoggingConfig", arg0) - ret0, _ := ret[0].(*route53.DeleteQueryLoggingConfigOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteQueryLoggingConfig indicates an expected call of DeleteQueryLoggingConfig -func (mr *MockRoute53APIMockRecorder) DeleteQueryLoggingConfig(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteQueryLoggingConfig", reflect.TypeOf((*MockRoute53API)(nil).DeleteQueryLoggingConfig), arg0) -} - -// DeleteQueryLoggingConfigWithContext mocks base method -func (m *MockRoute53API) DeleteQueryLoggingConfigWithContext(arg0 aws.Context, arg1 *route53.DeleteQueryLoggingConfigInput, arg2 ...request.Option) (*route53.DeleteQueryLoggingConfigOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "DeleteQueryLoggingConfigWithContext", varargs...) - ret0, _ := ret[0].(*route53.DeleteQueryLoggingConfigOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteQueryLoggingConfigWithContext indicates an expected call of DeleteQueryLoggingConfigWithContext -func (mr *MockRoute53APIMockRecorder) DeleteQueryLoggingConfigWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteQueryLoggingConfigWithContext", reflect.TypeOf((*MockRoute53API)(nil).DeleteQueryLoggingConfigWithContext), varargs...) -} - -// DeleteQueryLoggingConfigRequest mocks base method -func (m *MockRoute53API) DeleteQueryLoggingConfigRequest(arg0 *route53.DeleteQueryLoggingConfigInput) (*request.Request, *route53.DeleteQueryLoggingConfigOutput) { - ret := m.ctrl.Call(m, "DeleteQueryLoggingConfigRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.DeleteQueryLoggingConfigOutput) - return ret0, ret1 -} - -// DeleteQueryLoggingConfigRequest indicates an expected call of DeleteQueryLoggingConfigRequest -func (mr *MockRoute53APIMockRecorder) DeleteQueryLoggingConfigRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteQueryLoggingConfigRequest", reflect.TypeOf((*MockRoute53API)(nil).DeleteQueryLoggingConfigRequest), arg0) -} - -// DeleteReusableDelegationSet mocks base method -func (m *MockRoute53API) DeleteReusableDelegationSet(arg0 *route53.DeleteReusableDelegationSetInput) (*route53.DeleteReusableDelegationSetOutput, error) { - ret := m.ctrl.Call(m, "DeleteReusableDelegationSet", arg0) - ret0, _ := ret[0].(*route53.DeleteReusableDelegationSetOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteReusableDelegationSet indicates an expected call of DeleteReusableDelegationSet -func (mr *MockRoute53APIMockRecorder) DeleteReusableDelegationSet(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteReusableDelegationSet", reflect.TypeOf((*MockRoute53API)(nil).DeleteReusableDelegationSet), arg0) -} - -// DeleteReusableDelegationSetWithContext mocks base method -func (m *MockRoute53API) DeleteReusableDelegationSetWithContext(arg0 aws.Context, arg1 *route53.DeleteReusableDelegationSetInput, arg2 ...request.Option) (*route53.DeleteReusableDelegationSetOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "DeleteReusableDelegationSetWithContext", varargs...) - ret0, _ := ret[0].(*route53.DeleteReusableDelegationSetOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteReusableDelegationSetWithContext indicates an expected call of DeleteReusableDelegationSetWithContext -func (mr *MockRoute53APIMockRecorder) DeleteReusableDelegationSetWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteReusableDelegationSetWithContext", reflect.TypeOf((*MockRoute53API)(nil).DeleteReusableDelegationSetWithContext), varargs...) -} - -// DeleteReusableDelegationSetRequest mocks base method -func (m *MockRoute53API) DeleteReusableDelegationSetRequest(arg0 *route53.DeleteReusableDelegationSetInput) (*request.Request, *route53.DeleteReusableDelegationSetOutput) { - ret := m.ctrl.Call(m, "DeleteReusableDelegationSetRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.DeleteReusableDelegationSetOutput) - return ret0, ret1 -} - -// DeleteReusableDelegationSetRequest indicates an expected call of DeleteReusableDelegationSetRequest -func (mr *MockRoute53APIMockRecorder) DeleteReusableDelegationSetRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteReusableDelegationSetRequest", reflect.TypeOf((*MockRoute53API)(nil).DeleteReusableDelegationSetRequest), arg0) -} - -// DeleteTrafficPolicy mocks base method -func (m *MockRoute53API) DeleteTrafficPolicy(arg0 *route53.DeleteTrafficPolicyInput) (*route53.DeleteTrafficPolicyOutput, error) { - ret := m.ctrl.Call(m, "DeleteTrafficPolicy", arg0) - ret0, _ := ret[0].(*route53.DeleteTrafficPolicyOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteTrafficPolicy indicates an expected call of DeleteTrafficPolicy -func (mr *MockRoute53APIMockRecorder) DeleteTrafficPolicy(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTrafficPolicy", reflect.TypeOf((*MockRoute53API)(nil).DeleteTrafficPolicy), arg0) -} - -// DeleteTrafficPolicyWithContext mocks base method -func (m *MockRoute53API) DeleteTrafficPolicyWithContext(arg0 aws.Context, arg1 *route53.DeleteTrafficPolicyInput, arg2 ...request.Option) (*route53.DeleteTrafficPolicyOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "DeleteTrafficPolicyWithContext", varargs...) - ret0, _ := ret[0].(*route53.DeleteTrafficPolicyOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteTrafficPolicyWithContext indicates an expected call of DeleteTrafficPolicyWithContext -func (mr *MockRoute53APIMockRecorder) DeleteTrafficPolicyWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTrafficPolicyWithContext", reflect.TypeOf((*MockRoute53API)(nil).DeleteTrafficPolicyWithContext), varargs...) -} - -// DeleteTrafficPolicyRequest mocks base method -func (m *MockRoute53API) DeleteTrafficPolicyRequest(arg0 *route53.DeleteTrafficPolicyInput) (*request.Request, *route53.DeleteTrafficPolicyOutput) { - ret := m.ctrl.Call(m, "DeleteTrafficPolicyRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.DeleteTrafficPolicyOutput) - return ret0, ret1 -} - -// DeleteTrafficPolicyRequest indicates an expected call of DeleteTrafficPolicyRequest -func (mr *MockRoute53APIMockRecorder) DeleteTrafficPolicyRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTrafficPolicyRequest", reflect.TypeOf((*MockRoute53API)(nil).DeleteTrafficPolicyRequest), arg0) -} - -// DeleteTrafficPolicyInstance mocks base method -func (m *MockRoute53API) DeleteTrafficPolicyInstance(arg0 *route53.DeleteTrafficPolicyInstanceInput) (*route53.DeleteTrafficPolicyInstanceOutput, error) { - ret := m.ctrl.Call(m, "DeleteTrafficPolicyInstance", arg0) - ret0, _ := ret[0].(*route53.DeleteTrafficPolicyInstanceOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteTrafficPolicyInstance indicates an expected call of DeleteTrafficPolicyInstance -func (mr *MockRoute53APIMockRecorder) DeleteTrafficPolicyInstance(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTrafficPolicyInstance", reflect.TypeOf((*MockRoute53API)(nil).DeleteTrafficPolicyInstance), arg0) -} - -// DeleteTrafficPolicyInstanceWithContext mocks base method -func (m *MockRoute53API) DeleteTrafficPolicyInstanceWithContext(arg0 aws.Context, arg1 *route53.DeleteTrafficPolicyInstanceInput, arg2 ...request.Option) (*route53.DeleteTrafficPolicyInstanceOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "DeleteTrafficPolicyInstanceWithContext", varargs...) - ret0, _ := ret[0].(*route53.DeleteTrafficPolicyInstanceOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteTrafficPolicyInstanceWithContext indicates an expected call of DeleteTrafficPolicyInstanceWithContext -func (mr *MockRoute53APIMockRecorder) DeleteTrafficPolicyInstanceWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTrafficPolicyInstanceWithContext", reflect.TypeOf((*MockRoute53API)(nil).DeleteTrafficPolicyInstanceWithContext), varargs...) -} - -// DeleteTrafficPolicyInstanceRequest mocks base method -func (m *MockRoute53API) DeleteTrafficPolicyInstanceRequest(arg0 *route53.DeleteTrafficPolicyInstanceInput) (*request.Request, *route53.DeleteTrafficPolicyInstanceOutput) { - ret := m.ctrl.Call(m, "DeleteTrafficPolicyInstanceRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.DeleteTrafficPolicyInstanceOutput) - return ret0, ret1 -} - -// DeleteTrafficPolicyInstanceRequest indicates an expected call of DeleteTrafficPolicyInstanceRequest -func (mr *MockRoute53APIMockRecorder) DeleteTrafficPolicyInstanceRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTrafficPolicyInstanceRequest", reflect.TypeOf((*MockRoute53API)(nil).DeleteTrafficPolicyInstanceRequest), arg0) -} - -// DeleteVPCAssociationAuthorization mocks base method -func (m *MockRoute53API) DeleteVPCAssociationAuthorization(arg0 *route53.DeleteVPCAssociationAuthorizationInput) (*route53.DeleteVPCAssociationAuthorizationOutput, error) { - ret := m.ctrl.Call(m, "DeleteVPCAssociationAuthorization", arg0) - ret0, _ := ret[0].(*route53.DeleteVPCAssociationAuthorizationOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteVPCAssociationAuthorization indicates an expected call of DeleteVPCAssociationAuthorization -func (mr *MockRoute53APIMockRecorder) DeleteVPCAssociationAuthorization(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteVPCAssociationAuthorization", reflect.TypeOf((*MockRoute53API)(nil).DeleteVPCAssociationAuthorization), arg0) -} - -// DeleteVPCAssociationAuthorizationWithContext mocks base method -func (m *MockRoute53API) DeleteVPCAssociationAuthorizationWithContext(arg0 aws.Context, arg1 *route53.DeleteVPCAssociationAuthorizationInput, arg2 ...request.Option) (*route53.DeleteVPCAssociationAuthorizationOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "DeleteVPCAssociationAuthorizationWithContext", varargs...) - ret0, _ := ret[0].(*route53.DeleteVPCAssociationAuthorizationOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DeleteVPCAssociationAuthorizationWithContext indicates an expected call of DeleteVPCAssociationAuthorizationWithContext -func (mr *MockRoute53APIMockRecorder) DeleteVPCAssociationAuthorizationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteVPCAssociationAuthorizationWithContext", reflect.TypeOf((*MockRoute53API)(nil).DeleteVPCAssociationAuthorizationWithContext), varargs...) -} - -// DeleteVPCAssociationAuthorizationRequest mocks base method -func (m *MockRoute53API) DeleteVPCAssociationAuthorizationRequest(arg0 *route53.DeleteVPCAssociationAuthorizationInput) (*request.Request, *route53.DeleteVPCAssociationAuthorizationOutput) { - ret := m.ctrl.Call(m, "DeleteVPCAssociationAuthorizationRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.DeleteVPCAssociationAuthorizationOutput) - return ret0, ret1 -} - -// DeleteVPCAssociationAuthorizationRequest indicates an expected call of DeleteVPCAssociationAuthorizationRequest -func (mr *MockRoute53APIMockRecorder) DeleteVPCAssociationAuthorizationRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteVPCAssociationAuthorizationRequest", reflect.TypeOf((*MockRoute53API)(nil).DeleteVPCAssociationAuthorizationRequest), arg0) -} - -// DisassociateVPCFromHostedZone mocks base method -func (m *MockRoute53API) DisassociateVPCFromHostedZone(arg0 *route53.DisassociateVPCFromHostedZoneInput) (*route53.DisassociateVPCFromHostedZoneOutput, error) { - ret := m.ctrl.Call(m, "DisassociateVPCFromHostedZone", arg0) - ret0, _ := ret[0].(*route53.DisassociateVPCFromHostedZoneOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DisassociateVPCFromHostedZone indicates an expected call of DisassociateVPCFromHostedZone -func (mr *MockRoute53APIMockRecorder) DisassociateVPCFromHostedZone(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DisassociateVPCFromHostedZone", reflect.TypeOf((*MockRoute53API)(nil).DisassociateVPCFromHostedZone), arg0) -} - -// DisassociateVPCFromHostedZoneWithContext mocks base method -func (m *MockRoute53API) DisassociateVPCFromHostedZoneWithContext(arg0 aws.Context, arg1 *route53.DisassociateVPCFromHostedZoneInput, arg2 ...request.Option) (*route53.DisassociateVPCFromHostedZoneOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "DisassociateVPCFromHostedZoneWithContext", varargs...) - ret0, _ := ret[0].(*route53.DisassociateVPCFromHostedZoneOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// DisassociateVPCFromHostedZoneWithContext indicates an expected call of DisassociateVPCFromHostedZoneWithContext -func (mr *MockRoute53APIMockRecorder) DisassociateVPCFromHostedZoneWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DisassociateVPCFromHostedZoneWithContext", reflect.TypeOf((*MockRoute53API)(nil).DisassociateVPCFromHostedZoneWithContext), varargs...) -} - -// DisassociateVPCFromHostedZoneRequest mocks base method -func (m *MockRoute53API) DisassociateVPCFromHostedZoneRequest(arg0 *route53.DisassociateVPCFromHostedZoneInput) (*request.Request, *route53.DisassociateVPCFromHostedZoneOutput) { - ret := m.ctrl.Call(m, "DisassociateVPCFromHostedZoneRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.DisassociateVPCFromHostedZoneOutput) - return ret0, ret1 -} - -// DisassociateVPCFromHostedZoneRequest indicates an expected call of DisassociateVPCFromHostedZoneRequest -func (mr *MockRoute53APIMockRecorder) DisassociateVPCFromHostedZoneRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DisassociateVPCFromHostedZoneRequest", reflect.TypeOf((*MockRoute53API)(nil).DisassociateVPCFromHostedZoneRequest), arg0) -} - -// GetAccountLimit mocks base method -func (m *MockRoute53API) GetAccountLimit(arg0 *route53.GetAccountLimitInput) (*route53.GetAccountLimitOutput, error) { - ret := m.ctrl.Call(m, "GetAccountLimit", arg0) - ret0, _ := ret[0].(*route53.GetAccountLimitOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAccountLimit indicates an expected call of GetAccountLimit -func (mr *MockRoute53APIMockRecorder) GetAccountLimit(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAccountLimit", reflect.TypeOf((*MockRoute53API)(nil).GetAccountLimit), arg0) -} - -// GetAccountLimitWithContext mocks base method -func (m *MockRoute53API) GetAccountLimitWithContext(arg0 aws.Context, arg1 *route53.GetAccountLimitInput, arg2 ...request.Option) (*route53.GetAccountLimitOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetAccountLimitWithContext", varargs...) - ret0, _ := ret[0].(*route53.GetAccountLimitOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAccountLimitWithContext indicates an expected call of GetAccountLimitWithContext -func (mr *MockRoute53APIMockRecorder) GetAccountLimitWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAccountLimitWithContext", reflect.TypeOf((*MockRoute53API)(nil).GetAccountLimitWithContext), varargs...) -} - -// GetAccountLimitRequest mocks base method -func (m *MockRoute53API) GetAccountLimitRequest(arg0 *route53.GetAccountLimitInput) (*request.Request, *route53.GetAccountLimitOutput) { - ret := m.ctrl.Call(m, "GetAccountLimitRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.GetAccountLimitOutput) - return ret0, ret1 -} - -// GetAccountLimitRequest indicates an expected call of GetAccountLimitRequest -func (mr *MockRoute53APIMockRecorder) GetAccountLimitRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAccountLimitRequest", reflect.TypeOf((*MockRoute53API)(nil).GetAccountLimitRequest), arg0) -} - -// GetChange mocks base method -func (m *MockRoute53API) GetChange(arg0 *route53.GetChangeInput) (*route53.GetChangeOutput, error) { - ret := m.ctrl.Call(m, "GetChange", arg0) - ret0, _ := ret[0].(*route53.GetChangeOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetChange indicates an expected call of GetChange -func (mr *MockRoute53APIMockRecorder) GetChange(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetChange", reflect.TypeOf((*MockRoute53API)(nil).GetChange), arg0) -} - -// GetChangeWithContext mocks base method -func (m *MockRoute53API) GetChangeWithContext(arg0 aws.Context, arg1 *route53.GetChangeInput, arg2 ...request.Option) (*route53.GetChangeOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetChangeWithContext", varargs...) - ret0, _ := ret[0].(*route53.GetChangeOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetChangeWithContext indicates an expected call of GetChangeWithContext -func (mr *MockRoute53APIMockRecorder) GetChangeWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetChangeWithContext", reflect.TypeOf((*MockRoute53API)(nil).GetChangeWithContext), varargs...) -} - -// GetChangeRequest mocks base method -func (m *MockRoute53API) GetChangeRequest(arg0 *route53.GetChangeInput) (*request.Request, *route53.GetChangeOutput) { - ret := m.ctrl.Call(m, "GetChangeRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.GetChangeOutput) - return ret0, ret1 -} - -// GetChangeRequest indicates an expected call of GetChangeRequest -func (mr *MockRoute53APIMockRecorder) GetChangeRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetChangeRequest", reflect.TypeOf((*MockRoute53API)(nil).GetChangeRequest), arg0) -} - -// GetCheckerIpRanges mocks base method -func (m *MockRoute53API) GetCheckerIpRanges(arg0 *route53.GetCheckerIpRangesInput) (*route53.GetCheckerIpRangesOutput, error) { - ret := m.ctrl.Call(m, "GetCheckerIpRanges", arg0) - ret0, _ := ret[0].(*route53.GetCheckerIpRangesOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetCheckerIpRanges indicates an expected call of GetCheckerIpRanges -func (mr *MockRoute53APIMockRecorder) GetCheckerIpRanges(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCheckerIpRanges", reflect.TypeOf((*MockRoute53API)(nil).GetCheckerIpRanges), arg0) -} - -// GetCheckerIpRangesWithContext mocks base method -func (m *MockRoute53API) GetCheckerIpRangesWithContext(arg0 aws.Context, arg1 *route53.GetCheckerIpRangesInput, arg2 ...request.Option) (*route53.GetCheckerIpRangesOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetCheckerIpRangesWithContext", varargs...) - ret0, _ := ret[0].(*route53.GetCheckerIpRangesOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetCheckerIpRangesWithContext indicates an expected call of GetCheckerIpRangesWithContext -func (mr *MockRoute53APIMockRecorder) GetCheckerIpRangesWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCheckerIpRangesWithContext", reflect.TypeOf((*MockRoute53API)(nil).GetCheckerIpRangesWithContext), varargs...) -} - -// GetCheckerIpRangesRequest mocks base method -func (m *MockRoute53API) GetCheckerIpRangesRequest(arg0 *route53.GetCheckerIpRangesInput) (*request.Request, *route53.GetCheckerIpRangesOutput) { - ret := m.ctrl.Call(m, "GetCheckerIpRangesRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.GetCheckerIpRangesOutput) - return ret0, ret1 -} - -// GetCheckerIpRangesRequest indicates an expected call of GetCheckerIpRangesRequest -func (mr *MockRoute53APIMockRecorder) GetCheckerIpRangesRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCheckerIpRangesRequest", reflect.TypeOf((*MockRoute53API)(nil).GetCheckerIpRangesRequest), arg0) -} - -// GetGeoLocation mocks base method -func (m *MockRoute53API) GetGeoLocation(arg0 *route53.GetGeoLocationInput) (*route53.GetGeoLocationOutput, error) { - ret := m.ctrl.Call(m, "GetGeoLocation", arg0) - ret0, _ := ret[0].(*route53.GetGeoLocationOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetGeoLocation indicates an expected call of GetGeoLocation -func (mr *MockRoute53APIMockRecorder) GetGeoLocation(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGeoLocation", reflect.TypeOf((*MockRoute53API)(nil).GetGeoLocation), arg0) -} - -// GetGeoLocationWithContext mocks base method -func (m *MockRoute53API) GetGeoLocationWithContext(arg0 aws.Context, arg1 *route53.GetGeoLocationInput, arg2 ...request.Option) (*route53.GetGeoLocationOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetGeoLocationWithContext", varargs...) - ret0, _ := ret[0].(*route53.GetGeoLocationOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetGeoLocationWithContext indicates an expected call of GetGeoLocationWithContext -func (mr *MockRoute53APIMockRecorder) GetGeoLocationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGeoLocationWithContext", reflect.TypeOf((*MockRoute53API)(nil).GetGeoLocationWithContext), varargs...) -} - -// GetGeoLocationRequest mocks base method -func (m *MockRoute53API) GetGeoLocationRequest(arg0 *route53.GetGeoLocationInput) (*request.Request, *route53.GetGeoLocationOutput) { - ret := m.ctrl.Call(m, "GetGeoLocationRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.GetGeoLocationOutput) - return ret0, ret1 -} - -// GetGeoLocationRequest indicates an expected call of GetGeoLocationRequest -func (mr *MockRoute53APIMockRecorder) GetGeoLocationRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGeoLocationRequest", reflect.TypeOf((*MockRoute53API)(nil).GetGeoLocationRequest), arg0) -} - -// GetHealthCheck mocks base method -func (m *MockRoute53API) GetHealthCheck(arg0 *route53.GetHealthCheckInput) (*route53.GetHealthCheckOutput, error) { - ret := m.ctrl.Call(m, "GetHealthCheck", arg0) - ret0, _ := ret[0].(*route53.GetHealthCheckOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetHealthCheck indicates an expected call of GetHealthCheck -func (mr *MockRoute53APIMockRecorder) GetHealthCheck(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHealthCheck", reflect.TypeOf((*MockRoute53API)(nil).GetHealthCheck), arg0) -} - -// GetHealthCheckWithContext mocks base method -func (m *MockRoute53API) GetHealthCheckWithContext(arg0 aws.Context, arg1 *route53.GetHealthCheckInput, arg2 ...request.Option) (*route53.GetHealthCheckOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetHealthCheckWithContext", varargs...) - ret0, _ := ret[0].(*route53.GetHealthCheckOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetHealthCheckWithContext indicates an expected call of GetHealthCheckWithContext -func (mr *MockRoute53APIMockRecorder) GetHealthCheckWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHealthCheckWithContext", reflect.TypeOf((*MockRoute53API)(nil).GetHealthCheckWithContext), varargs...) -} - -// GetHealthCheckRequest mocks base method -func (m *MockRoute53API) GetHealthCheckRequest(arg0 *route53.GetHealthCheckInput) (*request.Request, *route53.GetHealthCheckOutput) { - ret := m.ctrl.Call(m, "GetHealthCheckRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.GetHealthCheckOutput) - return ret0, ret1 -} - -// GetHealthCheckRequest indicates an expected call of GetHealthCheckRequest -func (mr *MockRoute53APIMockRecorder) GetHealthCheckRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHealthCheckRequest", reflect.TypeOf((*MockRoute53API)(nil).GetHealthCheckRequest), arg0) -} - -// GetHealthCheckCount mocks base method -func (m *MockRoute53API) GetHealthCheckCount(arg0 *route53.GetHealthCheckCountInput) (*route53.GetHealthCheckCountOutput, error) { - ret := m.ctrl.Call(m, "GetHealthCheckCount", arg0) - ret0, _ := ret[0].(*route53.GetHealthCheckCountOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetHealthCheckCount indicates an expected call of GetHealthCheckCount -func (mr *MockRoute53APIMockRecorder) GetHealthCheckCount(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHealthCheckCount", reflect.TypeOf((*MockRoute53API)(nil).GetHealthCheckCount), arg0) -} - -// GetHealthCheckCountWithContext mocks base method -func (m *MockRoute53API) GetHealthCheckCountWithContext(arg0 aws.Context, arg1 *route53.GetHealthCheckCountInput, arg2 ...request.Option) (*route53.GetHealthCheckCountOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetHealthCheckCountWithContext", varargs...) - ret0, _ := ret[0].(*route53.GetHealthCheckCountOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetHealthCheckCountWithContext indicates an expected call of GetHealthCheckCountWithContext -func (mr *MockRoute53APIMockRecorder) GetHealthCheckCountWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHealthCheckCountWithContext", reflect.TypeOf((*MockRoute53API)(nil).GetHealthCheckCountWithContext), varargs...) -} - -// GetHealthCheckCountRequest mocks base method -func (m *MockRoute53API) GetHealthCheckCountRequest(arg0 *route53.GetHealthCheckCountInput) (*request.Request, *route53.GetHealthCheckCountOutput) { - ret := m.ctrl.Call(m, "GetHealthCheckCountRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.GetHealthCheckCountOutput) - return ret0, ret1 -} - -// GetHealthCheckCountRequest indicates an expected call of GetHealthCheckCountRequest -func (mr *MockRoute53APIMockRecorder) GetHealthCheckCountRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHealthCheckCountRequest", reflect.TypeOf((*MockRoute53API)(nil).GetHealthCheckCountRequest), arg0) -} - -// GetHealthCheckLastFailureReason mocks base method -func (m *MockRoute53API) GetHealthCheckLastFailureReason(arg0 *route53.GetHealthCheckLastFailureReasonInput) (*route53.GetHealthCheckLastFailureReasonOutput, error) { - ret := m.ctrl.Call(m, "GetHealthCheckLastFailureReason", arg0) - ret0, _ := ret[0].(*route53.GetHealthCheckLastFailureReasonOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetHealthCheckLastFailureReason indicates an expected call of GetHealthCheckLastFailureReason -func (mr *MockRoute53APIMockRecorder) GetHealthCheckLastFailureReason(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHealthCheckLastFailureReason", reflect.TypeOf((*MockRoute53API)(nil).GetHealthCheckLastFailureReason), arg0) -} - -// GetHealthCheckLastFailureReasonWithContext mocks base method -func (m *MockRoute53API) GetHealthCheckLastFailureReasonWithContext(arg0 aws.Context, arg1 *route53.GetHealthCheckLastFailureReasonInput, arg2 ...request.Option) (*route53.GetHealthCheckLastFailureReasonOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetHealthCheckLastFailureReasonWithContext", varargs...) - ret0, _ := ret[0].(*route53.GetHealthCheckLastFailureReasonOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetHealthCheckLastFailureReasonWithContext indicates an expected call of GetHealthCheckLastFailureReasonWithContext -func (mr *MockRoute53APIMockRecorder) GetHealthCheckLastFailureReasonWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHealthCheckLastFailureReasonWithContext", reflect.TypeOf((*MockRoute53API)(nil).GetHealthCheckLastFailureReasonWithContext), varargs...) -} - -// GetHealthCheckLastFailureReasonRequest mocks base method -func (m *MockRoute53API) GetHealthCheckLastFailureReasonRequest(arg0 *route53.GetHealthCheckLastFailureReasonInput) (*request.Request, *route53.GetHealthCheckLastFailureReasonOutput) { - ret := m.ctrl.Call(m, "GetHealthCheckLastFailureReasonRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.GetHealthCheckLastFailureReasonOutput) - return ret0, ret1 -} - -// GetHealthCheckLastFailureReasonRequest indicates an expected call of GetHealthCheckLastFailureReasonRequest -func (mr *MockRoute53APIMockRecorder) GetHealthCheckLastFailureReasonRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHealthCheckLastFailureReasonRequest", reflect.TypeOf((*MockRoute53API)(nil).GetHealthCheckLastFailureReasonRequest), arg0) -} - -// GetHealthCheckStatus mocks base method -func (m *MockRoute53API) GetHealthCheckStatus(arg0 *route53.GetHealthCheckStatusInput) (*route53.GetHealthCheckStatusOutput, error) { - ret := m.ctrl.Call(m, "GetHealthCheckStatus", arg0) - ret0, _ := ret[0].(*route53.GetHealthCheckStatusOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetHealthCheckStatus indicates an expected call of GetHealthCheckStatus -func (mr *MockRoute53APIMockRecorder) GetHealthCheckStatus(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHealthCheckStatus", reflect.TypeOf((*MockRoute53API)(nil).GetHealthCheckStatus), arg0) -} - -// GetHealthCheckStatusWithContext mocks base method -func (m *MockRoute53API) GetHealthCheckStatusWithContext(arg0 aws.Context, arg1 *route53.GetHealthCheckStatusInput, arg2 ...request.Option) (*route53.GetHealthCheckStatusOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetHealthCheckStatusWithContext", varargs...) - ret0, _ := ret[0].(*route53.GetHealthCheckStatusOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetHealthCheckStatusWithContext indicates an expected call of GetHealthCheckStatusWithContext -func (mr *MockRoute53APIMockRecorder) GetHealthCheckStatusWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHealthCheckStatusWithContext", reflect.TypeOf((*MockRoute53API)(nil).GetHealthCheckStatusWithContext), varargs...) -} - -// GetHealthCheckStatusRequest mocks base method -func (m *MockRoute53API) GetHealthCheckStatusRequest(arg0 *route53.GetHealthCheckStatusInput) (*request.Request, *route53.GetHealthCheckStatusOutput) { - ret := m.ctrl.Call(m, "GetHealthCheckStatusRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.GetHealthCheckStatusOutput) - return ret0, ret1 -} - -// GetHealthCheckStatusRequest indicates an expected call of GetHealthCheckStatusRequest -func (mr *MockRoute53APIMockRecorder) GetHealthCheckStatusRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHealthCheckStatusRequest", reflect.TypeOf((*MockRoute53API)(nil).GetHealthCheckStatusRequest), arg0) -} - -// GetHostedZone mocks base method -func (m *MockRoute53API) GetHostedZone(arg0 *route53.GetHostedZoneInput) (*route53.GetHostedZoneOutput, error) { - ret := m.ctrl.Call(m, "GetHostedZone", arg0) - ret0, _ := ret[0].(*route53.GetHostedZoneOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetHostedZone indicates an expected call of GetHostedZone -func (mr *MockRoute53APIMockRecorder) GetHostedZone(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHostedZone", reflect.TypeOf((*MockRoute53API)(nil).GetHostedZone), arg0) -} - -// GetHostedZoneWithContext mocks base method -func (m *MockRoute53API) GetHostedZoneWithContext(arg0 aws.Context, arg1 *route53.GetHostedZoneInput, arg2 ...request.Option) (*route53.GetHostedZoneOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetHostedZoneWithContext", varargs...) - ret0, _ := ret[0].(*route53.GetHostedZoneOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetHostedZoneWithContext indicates an expected call of GetHostedZoneWithContext -func (mr *MockRoute53APIMockRecorder) GetHostedZoneWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHostedZoneWithContext", reflect.TypeOf((*MockRoute53API)(nil).GetHostedZoneWithContext), varargs...) -} - -// GetHostedZoneRequest mocks base method -func (m *MockRoute53API) GetHostedZoneRequest(arg0 *route53.GetHostedZoneInput) (*request.Request, *route53.GetHostedZoneOutput) { - ret := m.ctrl.Call(m, "GetHostedZoneRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.GetHostedZoneOutput) - return ret0, ret1 -} - -// GetHostedZoneRequest indicates an expected call of GetHostedZoneRequest -func (mr *MockRoute53APIMockRecorder) GetHostedZoneRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHostedZoneRequest", reflect.TypeOf((*MockRoute53API)(nil).GetHostedZoneRequest), arg0) -} - -// GetHostedZoneCount mocks base method -func (m *MockRoute53API) GetHostedZoneCount(arg0 *route53.GetHostedZoneCountInput) (*route53.GetHostedZoneCountOutput, error) { - ret := m.ctrl.Call(m, "GetHostedZoneCount", arg0) - ret0, _ := ret[0].(*route53.GetHostedZoneCountOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetHostedZoneCount indicates an expected call of GetHostedZoneCount -func (mr *MockRoute53APIMockRecorder) GetHostedZoneCount(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHostedZoneCount", reflect.TypeOf((*MockRoute53API)(nil).GetHostedZoneCount), arg0) -} - -// GetHostedZoneCountWithContext mocks base method -func (m *MockRoute53API) GetHostedZoneCountWithContext(arg0 aws.Context, arg1 *route53.GetHostedZoneCountInput, arg2 ...request.Option) (*route53.GetHostedZoneCountOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetHostedZoneCountWithContext", varargs...) - ret0, _ := ret[0].(*route53.GetHostedZoneCountOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetHostedZoneCountWithContext indicates an expected call of GetHostedZoneCountWithContext -func (mr *MockRoute53APIMockRecorder) GetHostedZoneCountWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHostedZoneCountWithContext", reflect.TypeOf((*MockRoute53API)(nil).GetHostedZoneCountWithContext), varargs...) -} - -// GetHostedZoneCountRequest mocks base method -func (m *MockRoute53API) GetHostedZoneCountRequest(arg0 *route53.GetHostedZoneCountInput) (*request.Request, *route53.GetHostedZoneCountOutput) { - ret := m.ctrl.Call(m, "GetHostedZoneCountRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.GetHostedZoneCountOutput) - return ret0, ret1 -} - -// GetHostedZoneCountRequest indicates an expected call of GetHostedZoneCountRequest -func (mr *MockRoute53APIMockRecorder) GetHostedZoneCountRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHostedZoneCountRequest", reflect.TypeOf((*MockRoute53API)(nil).GetHostedZoneCountRequest), arg0) -} - -// GetHostedZoneLimit mocks base method -func (m *MockRoute53API) GetHostedZoneLimit(arg0 *route53.GetHostedZoneLimitInput) (*route53.GetHostedZoneLimitOutput, error) { - ret := m.ctrl.Call(m, "GetHostedZoneLimit", arg0) - ret0, _ := ret[0].(*route53.GetHostedZoneLimitOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetHostedZoneLimit indicates an expected call of GetHostedZoneLimit -func (mr *MockRoute53APIMockRecorder) GetHostedZoneLimit(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHostedZoneLimit", reflect.TypeOf((*MockRoute53API)(nil).GetHostedZoneLimit), arg0) -} - -// GetHostedZoneLimitWithContext mocks base method -func (m *MockRoute53API) GetHostedZoneLimitWithContext(arg0 aws.Context, arg1 *route53.GetHostedZoneLimitInput, arg2 ...request.Option) (*route53.GetHostedZoneLimitOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetHostedZoneLimitWithContext", varargs...) - ret0, _ := ret[0].(*route53.GetHostedZoneLimitOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetHostedZoneLimitWithContext indicates an expected call of GetHostedZoneLimitWithContext -func (mr *MockRoute53APIMockRecorder) GetHostedZoneLimitWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHostedZoneLimitWithContext", reflect.TypeOf((*MockRoute53API)(nil).GetHostedZoneLimitWithContext), varargs...) -} - -// GetHostedZoneLimitRequest mocks base method -func (m *MockRoute53API) GetHostedZoneLimitRequest(arg0 *route53.GetHostedZoneLimitInput) (*request.Request, *route53.GetHostedZoneLimitOutput) { - ret := m.ctrl.Call(m, "GetHostedZoneLimitRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.GetHostedZoneLimitOutput) - return ret0, ret1 -} - -// GetHostedZoneLimitRequest indicates an expected call of GetHostedZoneLimitRequest -func (mr *MockRoute53APIMockRecorder) GetHostedZoneLimitRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHostedZoneLimitRequest", reflect.TypeOf((*MockRoute53API)(nil).GetHostedZoneLimitRequest), arg0) -} - -// GetQueryLoggingConfig mocks base method -func (m *MockRoute53API) GetQueryLoggingConfig(arg0 *route53.GetQueryLoggingConfigInput) (*route53.GetQueryLoggingConfigOutput, error) { - ret := m.ctrl.Call(m, "GetQueryLoggingConfig", arg0) - ret0, _ := ret[0].(*route53.GetQueryLoggingConfigOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetQueryLoggingConfig indicates an expected call of GetQueryLoggingConfig -func (mr *MockRoute53APIMockRecorder) GetQueryLoggingConfig(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetQueryLoggingConfig", reflect.TypeOf((*MockRoute53API)(nil).GetQueryLoggingConfig), arg0) -} - -// GetQueryLoggingConfigWithContext mocks base method -func (m *MockRoute53API) GetQueryLoggingConfigWithContext(arg0 aws.Context, arg1 *route53.GetQueryLoggingConfigInput, arg2 ...request.Option) (*route53.GetQueryLoggingConfigOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetQueryLoggingConfigWithContext", varargs...) - ret0, _ := ret[0].(*route53.GetQueryLoggingConfigOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetQueryLoggingConfigWithContext indicates an expected call of GetQueryLoggingConfigWithContext -func (mr *MockRoute53APIMockRecorder) GetQueryLoggingConfigWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetQueryLoggingConfigWithContext", reflect.TypeOf((*MockRoute53API)(nil).GetQueryLoggingConfigWithContext), varargs...) -} - -// GetQueryLoggingConfigRequest mocks base method -func (m *MockRoute53API) GetQueryLoggingConfigRequest(arg0 *route53.GetQueryLoggingConfigInput) (*request.Request, *route53.GetQueryLoggingConfigOutput) { - ret := m.ctrl.Call(m, "GetQueryLoggingConfigRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.GetQueryLoggingConfigOutput) - return ret0, ret1 -} - -// GetQueryLoggingConfigRequest indicates an expected call of GetQueryLoggingConfigRequest -func (mr *MockRoute53APIMockRecorder) GetQueryLoggingConfigRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetQueryLoggingConfigRequest", reflect.TypeOf((*MockRoute53API)(nil).GetQueryLoggingConfigRequest), arg0) -} - -// GetReusableDelegationSet mocks base method -func (m *MockRoute53API) GetReusableDelegationSet(arg0 *route53.GetReusableDelegationSetInput) (*route53.GetReusableDelegationSetOutput, error) { - ret := m.ctrl.Call(m, "GetReusableDelegationSet", arg0) - ret0, _ := ret[0].(*route53.GetReusableDelegationSetOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetReusableDelegationSet indicates an expected call of GetReusableDelegationSet -func (mr *MockRoute53APIMockRecorder) GetReusableDelegationSet(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetReusableDelegationSet", reflect.TypeOf((*MockRoute53API)(nil).GetReusableDelegationSet), arg0) -} - -// GetReusableDelegationSetWithContext mocks base method -func (m *MockRoute53API) GetReusableDelegationSetWithContext(arg0 aws.Context, arg1 *route53.GetReusableDelegationSetInput, arg2 ...request.Option) (*route53.GetReusableDelegationSetOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetReusableDelegationSetWithContext", varargs...) - ret0, _ := ret[0].(*route53.GetReusableDelegationSetOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetReusableDelegationSetWithContext indicates an expected call of GetReusableDelegationSetWithContext -func (mr *MockRoute53APIMockRecorder) GetReusableDelegationSetWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetReusableDelegationSetWithContext", reflect.TypeOf((*MockRoute53API)(nil).GetReusableDelegationSetWithContext), varargs...) -} - -// GetReusableDelegationSetRequest mocks base method -func (m *MockRoute53API) GetReusableDelegationSetRequest(arg0 *route53.GetReusableDelegationSetInput) (*request.Request, *route53.GetReusableDelegationSetOutput) { - ret := m.ctrl.Call(m, "GetReusableDelegationSetRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.GetReusableDelegationSetOutput) - return ret0, ret1 -} - -// GetReusableDelegationSetRequest indicates an expected call of GetReusableDelegationSetRequest -func (mr *MockRoute53APIMockRecorder) GetReusableDelegationSetRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetReusableDelegationSetRequest", reflect.TypeOf((*MockRoute53API)(nil).GetReusableDelegationSetRequest), arg0) -} - -// GetReusableDelegationSetLimit mocks base method -func (m *MockRoute53API) GetReusableDelegationSetLimit(arg0 *route53.GetReusableDelegationSetLimitInput) (*route53.GetReusableDelegationSetLimitOutput, error) { - ret := m.ctrl.Call(m, "GetReusableDelegationSetLimit", arg0) - ret0, _ := ret[0].(*route53.GetReusableDelegationSetLimitOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetReusableDelegationSetLimit indicates an expected call of GetReusableDelegationSetLimit -func (mr *MockRoute53APIMockRecorder) GetReusableDelegationSetLimit(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetReusableDelegationSetLimit", reflect.TypeOf((*MockRoute53API)(nil).GetReusableDelegationSetLimit), arg0) -} - -// GetReusableDelegationSetLimitWithContext mocks base method -func (m *MockRoute53API) GetReusableDelegationSetLimitWithContext(arg0 aws.Context, arg1 *route53.GetReusableDelegationSetLimitInput, arg2 ...request.Option) (*route53.GetReusableDelegationSetLimitOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetReusableDelegationSetLimitWithContext", varargs...) - ret0, _ := ret[0].(*route53.GetReusableDelegationSetLimitOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetReusableDelegationSetLimitWithContext indicates an expected call of GetReusableDelegationSetLimitWithContext -func (mr *MockRoute53APIMockRecorder) GetReusableDelegationSetLimitWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetReusableDelegationSetLimitWithContext", reflect.TypeOf((*MockRoute53API)(nil).GetReusableDelegationSetLimitWithContext), varargs...) -} - -// GetReusableDelegationSetLimitRequest mocks base method -func (m *MockRoute53API) GetReusableDelegationSetLimitRequest(arg0 *route53.GetReusableDelegationSetLimitInput) (*request.Request, *route53.GetReusableDelegationSetLimitOutput) { - ret := m.ctrl.Call(m, "GetReusableDelegationSetLimitRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.GetReusableDelegationSetLimitOutput) - return ret0, ret1 -} - -// GetReusableDelegationSetLimitRequest indicates an expected call of GetReusableDelegationSetLimitRequest -func (mr *MockRoute53APIMockRecorder) GetReusableDelegationSetLimitRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetReusableDelegationSetLimitRequest", reflect.TypeOf((*MockRoute53API)(nil).GetReusableDelegationSetLimitRequest), arg0) -} - -// GetTrafficPolicy mocks base method -func (m *MockRoute53API) GetTrafficPolicy(arg0 *route53.GetTrafficPolicyInput) (*route53.GetTrafficPolicyOutput, error) { - ret := m.ctrl.Call(m, "GetTrafficPolicy", arg0) - ret0, _ := ret[0].(*route53.GetTrafficPolicyOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTrafficPolicy indicates an expected call of GetTrafficPolicy -func (mr *MockRoute53APIMockRecorder) GetTrafficPolicy(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTrafficPolicy", reflect.TypeOf((*MockRoute53API)(nil).GetTrafficPolicy), arg0) -} - -// GetTrafficPolicyWithContext mocks base method -func (m *MockRoute53API) GetTrafficPolicyWithContext(arg0 aws.Context, arg1 *route53.GetTrafficPolicyInput, arg2 ...request.Option) (*route53.GetTrafficPolicyOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetTrafficPolicyWithContext", varargs...) - ret0, _ := ret[0].(*route53.GetTrafficPolicyOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTrafficPolicyWithContext indicates an expected call of GetTrafficPolicyWithContext -func (mr *MockRoute53APIMockRecorder) GetTrafficPolicyWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTrafficPolicyWithContext", reflect.TypeOf((*MockRoute53API)(nil).GetTrafficPolicyWithContext), varargs...) -} - -// GetTrafficPolicyRequest mocks base method -func (m *MockRoute53API) GetTrafficPolicyRequest(arg0 *route53.GetTrafficPolicyInput) (*request.Request, *route53.GetTrafficPolicyOutput) { - ret := m.ctrl.Call(m, "GetTrafficPolicyRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.GetTrafficPolicyOutput) - return ret0, ret1 -} - -// GetTrafficPolicyRequest indicates an expected call of GetTrafficPolicyRequest -func (mr *MockRoute53APIMockRecorder) GetTrafficPolicyRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTrafficPolicyRequest", reflect.TypeOf((*MockRoute53API)(nil).GetTrafficPolicyRequest), arg0) -} - -// GetTrafficPolicyInstance mocks base method -func (m *MockRoute53API) GetTrafficPolicyInstance(arg0 *route53.GetTrafficPolicyInstanceInput) (*route53.GetTrafficPolicyInstanceOutput, error) { - ret := m.ctrl.Call(m, "GetTrafficPolicyInstance", arg0) - ret0, _ := ret[0].(*route53.GetTrafficPolicyInstanceOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTrafficPolicyInstance indicates an expected call of GetTrafficPolicyInstance -func (mr *MockRoute53APIMockRecorder) GetTrafficPolicyInstance(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTrafficPolicyInstance", reflect.TypeOf((*MockRoute53API)(nil).GetTrafficPolicyInstance), arg0) -} - -// GetTrafficPolicyInstanceWithContext mocks base method -func (m *MockRoute53API) GetTrafficPolicyInstanceWithContext(arg0 aws.Context, arg1 *route53.GetTrafficPolicyInstanceInput, arg2 ...request.Option) (*route53.GetTrafficPolicyInstanceOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetTrafficPolicyInstanceWithContext", varargs...) - ret0, _ := ret[0].(*route53.GetTrafficPolicyInstanceOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTrafficPolicyInstanceWithContext indicates an expected call of GetTrafficPolicyInstanceWithContext -func (mr *MockRoute53APIMockRecorder) GetTrafficPolicyInstanceWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTrafficPolicyInstanceWithContext", reflect.TypeOf((*MockRoute53API)(nil).GetTrafficPolicyInstanceWithContext), varargs...) -} - -// GetTrafficPolicyInstanceRequest mocks base method -func (m *MockRoute53API) GetTrafficPolicyInstanceRequest(arg0 *route53.GetTrafficPolicyInstanceInput) (*request.Request, *route53.GetTrafficPolicyInstanceOutput) { - ret := m.ctrl.Call(m, "GetTrafficPolicyInstanceRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.GetTrafficPolicyInstanceOutput) - return ret0, ret1 -} - -// GetTrafficPolicyInstanceRequest indicates an expected call of GetTrafficPolicyInstanceRequest -func (mr *MockRoute53APIMockRecorder) GetTrafficPolicyInstanceRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTrafficPolicyInstanceRequest", reflect.TypeOf((*MockRoute53API)(nil).GetTrafficPolicyInstanceRequest), arg0) -} - -// GetTrafficPolicyInstanceCount mocks base method -func (m *MockRoute53API) GetTrafficPolicyInstanceCount(arg0 *route53.GetTrafficPolicyInstanceCountInput) (*route53.GetTrafficPolicyInstanceCountOutput, error) { - ret := m.ctrl.Call(m, "GetTrafficPolicyInstanceCount", arg0) - ret0, _ := ret[0].(*route53.GetTrafficPolicyInstanceCountOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTrafficPolicyInstanceCount indicates an expected call of GetTrafficPolicyInstanceCount -func (mr *MockRoute53APIMockRecorder) GetTrafficPolicyInstanceCount(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTrafficPolicyInstanceCount", reflect.TypeOf((*MockRoute53API)(nil).GetTrafficPolicyInstanceCount), arg0) -} - -// GetTrafficPolicyInstanceCountWithContext mocks base method -func (m *MockRoute53API) GetTrafficPolicyInstanceCountWithContext(arg0 aws.Context, arg1 *route53.GetTrafficPolicyInstanceCountInput, arg2 ...request.Option) (*route53.GetTrafficPolicyInstanceCountOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetTrafficPolicyInstanceCountWithContext", varargs...) - ret0, _ := ret[0].(*route53.GetTrafficPolicyInstanceCountOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTrafficPolicyInstanceCountWithContext indicates an expected call of GetTrafficPolicyInstanceCountWithContext -func (mr *MockRoute53APIMockRecorder) GetTrafficPolicyInstanceCountWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTrafficPolicyInstanceCountWithContext", reflect.TypeOf((*MockRoute53API)(nil).GetTrafficPolicyInstanceCountWithContext), varargs...) -} - -// GetTrafficPolicyInstanceCountRequest mocks base method -func (m *MockRoute53API) GetTrafficPolicyInstanceCountRequest(arg0 *route53.GetTrafficPolicyInstanceCountInput) (*request.Request, *route53.GetTrafficPolicyInstanceCountOutput) { - ret := m.ctrl.Call(m, "GetTrafficPolicyInstanceCountRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.GetTrafficPolicyInstanceCountOutput) - return ret0, ret1 -} - -// GetTrafficPolicyInstanceCountRequest indicates an expected call of GetTrafficPolicyInstanceCountRequest -func (mr *MockRoute53APIMockRecorder) GetTrafficPolicyInstanceCountRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTrafficPolicyInstanceCountRequest", reflect.TypeOf((*MockRoute53API)(nil).GetTrafficPolicyInstanceCountRequest), arg0) -} - -// ListGeoLocations mocks base method -func (m *MockRoute53API) ListGeoLocations(arg0 *route53.ListGeoLocationsInput) (*route53.ListGeoLocationsOutput, error) { - ret := m.ctrl.Call(m, "ListGeoLocations", arg0) - ret0, _ := ret[0].(*route53.ListGeoLocationsOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListGeoLocations indicates an expected call of ListGeoLocations -func (mr *MockRoute53APIMockRecorder) ListGeoLocations(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListGeoLocations", reflect.TypeOf((*MockRoute53API)(nil).ListGeoLocations), arg0) -} - -// ListGeoLocationsWithContext mocks base method -func (m *MockRoute53API) ListGeoLocationsWithContext(arg0 aws.Context, arg1 *route53.ListGeoLocationsInput, arg2 ...request.Option) (*route53.ListGeoLocationsOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ListGeoLocationsWithContext", varargs...) - ret0, _ := ret[0].(*route53.ListGeoLocationsOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListGeoLocationsWithContext indicates an expected call of ListGeoLocationsWithContext -func (mr *MockRoute53APIMockRecorder) ListGeoLocationsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListGeoLocationsWithContext", reflect.TypeOf((*MockRoute53API)(nil).ListGeoLocationsWithContext), varargs...) -} - -// ListGeoLocationsRequest mocks base method -func (m *MockRoute53API) ListGeoLocationsRequest(arg0 *route53.ListGeoLocationsInput) (*request.Request, *route53.ListGeoLocationsOutput) { - ret := m.ctrl.Call(m, "ListGeoLocationsRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.ListGeoLocationsOutput) - return ret0, ret1 -} - -// ListGeoLocationsRequest indicates an expected call of ListGeoLocationsRequest -func (mr *MockRoute53APIMockRecorder) ListGeoLocationsRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListGeoLocationsRequest", reflect.TypeOf((*MockRoute53API)(nil).ListGeoLocationsRequest), arg0) -} - -// ListHealthChecks mocks base method -func (m *MockRoute53API) ListHealthChecks(arg0 *route53.ListHealthChecksInput) (*route53.ListHealthChecksOutput, error) { - ret := m.ctrl.Call(m, "ListHealthChecks", arg0) - ret0, _ := ret[0].(*route53.ListHealthChecksOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListHealthChecks indicates an expected call of ListHealthChecks -func (mr *MockRoute53APIMockRecorder) ListHealthChecks(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListHealthChecks", reflect.TypeOf((*MockRoute53API)(nil).ListHealthChecks), arg0) -} - -// ListHealthChecksWithContext mocks base method -func (m *MockRoute53API) ListHealthChecksWithContext(arg0 aws.Context, arg1 *route53.ListHealthChecksInput, arg2 ...request.Option) (*route53.ListHealthChecksOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ListHealthChecksWithContext", varargs...) - ret0, _ := ret[0].(*route53.ListHealthChecksOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListHealthChecksWithContext indicates an expected call of ListHealthChecksWithContext -func (mr *MockRoute53APIMockRecorder) ListHealthChecksWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListHealthChecksWithContext", reflect.TypeOf((*MockRoute53API)(nil).ListHealthChecksWithContext), varargs...) -} - -// ListHealthChecksRequest mocks base method -func (m *MockRoute53API) ListHealthChecksRequest(arg0 *route53.ListHealthChecksInput) (*request.Request, *route53.ListHealthChecksOutput) { - ret := m.ctrl.Call(m, "ListHealthChecksRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.ListHealthChecksOutput) - return ret0, ret1 -} - -// ListHealthChecksRequest indicates an expected call of ListHealthChecksRequest -func (mr *MockRoute53APIMockRecorder) ListHealthChecksRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListHealthChecksRequest", reflect.TypeOf((*MockRoute53API)(nil).ListHealthChecksRequest), arg0) -} - -// ListHealthChecksPages mocks base method -func (m *MockRoute53API) ListHealthChecksPages(arg0 *route53.ListHealthChecksInput, arg1 func(*route53.ListHealthChecksOutput, bool) bool) error { - ret := m.ctrl.Call(m, "ListHealthChecksPages", arg0, arg1) - ret0, _ := ret[0].(error) - return ret0 -} - -// ListHealthChecksPages indicates an expected call of ListHealthChecksPages -func (mr *MockRoute53APIMockRecorder) ListHealthChecksPages(arg0, arg1 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListHealthChecksPages", reflect.TypeOf((*MockRoute53API)(nil).ListHealthChecksPages), arg0, arg1) -} - -// ListHealthChecksPagesWithContext mocks base method -func (m *MockRoute53API) ListHealthChecksPagesWithContext(arg0 aws.Context, arg1 *route53.ListHealthChecksInput, arg2 func(*route53.ListHealthChecksOutput, bool) bool, arg3 ...request.Option) error { - varargs := []interface{}{arg0, arg1, arg2} - for _, a := range arg3 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ListHealthChecksPagesWithContext", varargs...) - ret0, _ := ret[0].(error) - return ret0 -} - -// ListHealthChecksPagesWithContext indicates an expected call of ListHealthChecksPagesWithContext -func (mr *MockRoute53APIMockRecorder) ListHealthChecksPagesWithContext(arg0, arg1, arg2 interface{}, arg3 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1, arg2}, arg3...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListHealthChecksPagesWithContext", reflect.TypeOf((*MockRoute53API)(nil).ListHealthChecksPagesWithContext), varargs...) -} - -// ListHostedZones mocks base method -func (m *MockRoute53API) ListHostedZones(arg0 *route53.ListHostedZonesInput) (*route53.ListHostedZonesOutput, error) { - ret := m.ctrl.Call(m, "ListHostedZones", arg0) - ret0, _ := ret[0].(*route53.ListHostedZonesOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListHostedZones indicates an expected call of ListHostedZones -func (mr *MockRoute53APIMockRecorder) ListHostedZones(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListHostedZones", reflect.TypeOf((*MockRoute53API)(nil).ListHostedZones), arg0) -} - -// ListHostedZonesWithContext mocks base method -func (m *MockRoute53API) ListHostedZonesWithContext(arg0 aws.Context, arg1 *route53.ListHostedZonesInput, arg2 ...request.Option) (*route53.ListHostedZonesOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ListHostedZonesWithContext", varargs...) - ret0, _ := ret[0].(*route53.ListHostedZonesOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListHostedZonesWithContext indicates an expected call of ListHostedZonesWithContext -func (mr *MockRoute53APIMockRecorder) ListHostedZonesWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListHostedZonesWithContext", reflect.TypeOf((*MockRoute53API)(nil).ListHostedZonesWithContext), varargs...) -} - -// ListHostedZonesRequest mocks base method -func (m *MockRoute53API) ListHostedZonesRequest(arg0 *route53.ListHostedZonesInput) (*request.Request, *route53.ListHostedZonesOutput) { - ret := m.ctrl.Call(m, "ListHostedZonesRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.ListHostedZonesOutput) - return ret0, ret1 -} - -// ListHostedZonesRequest indicates an expected call of ListHostedZonesRequest -func (mr *MockRoute53APIMockRecorder) ListHostedZonesRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListHostedZonesRequest", reflect.TypeOf((*MockRoute53API)(nil).ListHostedZonesRequest), arg0) -} - -// ListHostedZonesPages mocks base method -func (m *MockRoute53API) ListHostedZonesPages(arg0 *route53.ListHostedZonesInput, arg1 func(*route53.ListHostedZonesOutput, bool) bool) error { - ret := m.ctrl.Call(m, "ListHostedZonesPages", arg0, arg1) - ret0, _ := ret[0].(error) - return ret0 -} - -// ListHostedZonesPages indicates an expected call of ListHostedZonesPages -func (mr *MockRoute53APIMockRecorder) ListHostedZonesPages(arg0, arg1 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListHostedZonesPages", reflect.TypeOf((*MockRoute53API)(nil).ListHostedZonesPages), arg0, arg1) -} - -// ListHostedZonesPagesWithContext mocks base method -func (m *MockRoute53API) ListHostedZonesPagesWithContext(arg0 aws.Context, arg1 *route53.ListHostedZonesInput, arg2 func(*route53.ListHostedZonesOutput, bool) bool, arg3 ...request.Option) error { - varargs := []interface{}{arg0, arg1, arg2} - for _, a := range arg3 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ListHostedZonesPagesWithContext", varargs...) - ret0, _ := ret[0].(error) - return ret0 -} - -// ListHostedZonesPagesWithContext indicates an expected call of ListHostedZonesPagesWithContext -func (mr *MockRoute53APIMockRecorder) ListHostedZonesPagesWithContext(arg0, arg1, arg2 interface{}, arg3 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1, arg2}, arg3...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListHostedZonesPagesWithContext", reflect.TypeOf((*MockRoute53API)(nil).ListHostedZonesPagesWithContext), varargs...) -} - -// ListHostedZonesByName mocks base method -func (m *MockRoute53API) ListHostedZonesByName(arg0 *route53.ListHostedZonesByNameInput) (*route53.ListHostedZonesByNameOutput, error) { - ret := m.ctrl.Call(m, "ListHostedZonesByName", arg0) - ret0, _ := ret[0].(*route53.ListHostedZonesByNameOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListHostedZonesByName indicates an expected call of ListHostedZonesByName -func (mr *MockRoute53APIMockRecorder) ListHostedZonesByName(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListHostedZonesByName", reflect.TypeOf((*MockRoute53API)(nil).ListHostedZonesByName), arg0) -} - -// ListHostedZonesByNameWithContext mocks base method -func (m *MockRoute53API) ListHostedZonesByNameWithContext(arg0 aws.Context, arg1 *route53.ListHostedZonesByNameInput, arg2 ...request.Option) (*route53.ListHostedZonesByNameOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ListHostedZonesByNameWithContext", varargs...) - ret0, _ := ret[0].(*route53.ListHostedZonesByNameOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListHostedZonesByNameWithContext indicates an expected call of ListHostedZonesByNameWithContext -func (mr *MockRoute53APIMockRecorder) ListHostedZonesByNameWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListHostedZonesByNameWithContext", reflect.TypeOf((*MockRoute53API)(nil).ListHostedZonesByNameWithContext), varargs...) -} - -// ListHostedZonesByNameRequest mocks base method -func (m *MockRoute53API) ListHostedZonesByNameRequest(arg0 *route53.ListHostedZonesByNameInput) (*request.Request, *route53.ListHostedZonesByNameOutput) { - ret := m.ctrl.Call(m, "ListHostedZonesByNameRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.ListHostedZonesByNameOutput) - return ret0, ret1 -} - -// ListHostedZonesByNameRequest indicates an expected call of ListHostedZonesByNameRequest -func (mr *MockRoute53APIMockRecorder) ListHostedZonesByNameRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListHostedZonesByNameRequest", reflect.TypeOf((*MockRoute53API)(nil).ListHostedZonesByNameRequest), arg0) -} - -// ListQueryLoggingConfigs mocks base method -func (m *MockRoute53API) ListQueryLoggingConfigs(arg0 *route53.ListQueryLoggingConfigsInput) (*route53.ListQueryLoggingConfigsOutput, error) { - ret := m.ctrl.Call(m, "ListQueryLoggingConfigs", arg0) - ret0, _ := ret[0].(*route53.ListQueryLoggingConfigsOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListQueryLoggingConfigs indicates an expected call of ListQueryLoggingConfigs -func (mr *MockRoute53APIMockRecorder) ListQueryLoggingConfigs(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListQueryLoggingConfigs", reflect.TypeOf((*MockRoute53API)(nil).ListQueryLoggingConfigs), arg0) -} - -// ListQueryLoggingConfigsWithContext mocks base method -func (m *MockRoute53API) ListQueryLoggingConfigsWithContext(arg0 aws.Context, arg1 *route53.ListQueryLoggingConfigsInput, arg2 ...request.Option) (*route53.ListQueryLoggingConfigsOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ListQueryLoggingConfigsWithContext", varargs...) - ret0, _ := ret[0].(*route53.ListQueryLoggingConfigsOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListQueryLoggingConfigsWithContext indicates an expected call of ListQueryLoggingConfigsWithContext -func (mr *MockRoute53APIMockRecorder) ListQueryLoggingConfigsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListQueryLoggingConfigsWithContext", reflect.TypeOf((*MockRoute53API)(nil).ListQueryLoggingConfigsWithContext), varargs...) -} - -// ListQueryLoggingConfigsRequest mocks base method -func (m *MockRoute53API) ListQueryLoggingConfigsRequest(arg0 *route53.ListQueryLoggingConfigsInput) (*request.Request, *route53.ListQueryLoggingConfigsOutput) { - ret := m.ctrl.Call(m, "ListQueryLoggingConfigsRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.ListQueryLoggingConfigsOutput) - return ret0, ret1 -} - -// ListQueryLoggingConfigsRequest indicates an expected call of ListQueryLoggingConfigsRequest -func (mr *MockRoute53APIMockRecorder) ListQueryLoggingConfigsRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListQueryLoggingConfigsRequest", reflect.TypeOf((*MockRoute53API)(nil).ListQueryLoggingConfigsRequest), arg0) -} - -// ListResourceRecordSets mocks base method -func (m *MockRoute53API) ListResourceRecordSets(arg0 *route53.ListResourceRecordSetsInput) (*route53.ListResourceRecordSetsOutput, error) { - ret := m.ctrl.Call(m, "ListResourceRecordSets", arg0) - ret0, _ := ret[0].(*route53.ListResourceRecordSetsOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListResourceRecordSets indicates an expected call of ListResourceRecordSets -func (mr *MockRoute53APIMockRecorder) ListResourceRecordSets(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListResourceRecordSets", reflect.TypeOf((*MockRoute53API)(nil).ListResourceRecordSets), arg0) -} - -// ListResourceRecordSetsWithContext mocks base method -func (m *MockRoute53API) ListResourceRecordSetsWithContext(arg0 aws.Context, arg1 *route53.ListResourceRecordSetsInput, arg2 ...request.Option) (*route53.ListResourceRecordSetsOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ListResourceRecordSetsWithContext", varargs...) - ret0, _ := ret[0].(*route53.ListResourceRecordSetsOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListResourceRecordSetsWithContext indicates an expected call of ListResourceRecordSetsWithContext -func (mr *MockRoute53APIMockRecorder) ListResourceRecordSetsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListResourceRecordSetsWithContext", reflect.TypeOf((*MockRoute53API)(nil).ListResourceRecordSetsWithContext), varargs...) -} - -// ListResourceRecordSetsRequest mocks base method -func (m *MockRoute53API) ListResourceRecordSetsRequest(arg0 *route53.ListResourceRecordSetsInput) (*request.Request, *route53.ListResourceRecordSetsOutput) { - ret := m.ctrl.Call(m, "ListResourceRecordSetsRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.ListResourceRecordSetsOutput) - return ret0, ret1 -} - -// ListResourceRecordSetsRequest indicates an expected call of ListResourceRecordSetsRequest -func (mr *MockRoute53APIMockRecorder) ListResourceRecordSetsRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListResourceRecordSetsRequest", reflect.TypeOf((*MockRoute53API)(nil).ListResourceRecordSetsRequest), arg0) -} - -// ListResourceRecordSetsPages mocks base method -func (m *MockRoute53API) ListResourceRecordSetsPages(arg0 *route53.ListResourceRecordSetsInput, arg1 func(*route53.ListResourceRecordSetsOutput, bool) bool) error { - ret := m.ctrl.Call(m, "ListResourceRecordSetsPages", arg0, arg1) - ret0, _ := ret[0].(error) - return ret0 -} - -// ListResourceRecordSetsPages indicates an expected call of ListResourceRecordSetsPages -func (mr *MockRoute53APIMockRecorder) ListResourceRecordSetsPages(arg0, arg1 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListResourceRecordSetsPages", reflect.TypeOf((*MockRoute53API)(nil).ListResourceRecordSetsPages), arg0, arg1) -} - -// ListResourceRecordSetsPagesWithContext mocks base method -func (m *MockRoute53API) ListResourceRecordSetsPagesWithContext(arg0 aws.Context, arg1 *route53.ListResourceRecordSetsInput, arg2 func(*route53.ListResourceRecordSetsOutput, bool) bool, arg3 ...request.Option) error { - varargs := []interface{}{arg0, arg1, arg2} - for _, a := range arg3 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ListResourceRecordSetsPagesWithContext", varargs...) - ret0, _ := ret[0].(error) - return ret0 -} - -// ListResourceRecordSetsPagesWithContext indicates an expected call of ListResourceRecordSetsPagesWithContext -func (mr *MockRoute53APIMockRecorder) ListResourceRecordSetsPagesWithContext(arg0, arg1, arg2 interface{}, arg3 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1, arg2}, arg3...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListResourceRecordSetsPagesWithContext", reflect.TypeOf((*MockRoute53API)(nil).ListResourceRecordSetsPagesWithContext), varargs...) -} - -// ListReusableDelegationSets mocks base method -func (m *MockRoute53API) ListReusableDelegationSets(arg0 *route53.ListReusableDelegationSetsInput) (*route53.ListReusableDelegationSetsOutput, error) { - ret := m.ctrl.Call(m, "ListReusableDelegationSets", arg0) - ret0, _ := ret[0].(*route53.ListReusableDelegationSetsOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListReusableDelegationSets indicates an expected call of ListReusableDelegationSets -func (mr *MockRoute53APIMockRecorder) ListReusableDelegationSets(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListReusableDelegationSets", reflect.TypeOf((*MockRoute53API)(nil).ListReusableDelegationSets), arg0) -} - -// ListReusableDelegationSetsWithContext mocks base method -func (m *MockRoute53API) ListReusableDelegationSetsWithContext(arg0 aws.Context, arg1 *route53.ListReusableDelegationSetsInput, arg2 ...request.Option) (*route53.ListReusableDelegationSetsOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ListReusableDelegationSetsWithContext", varargs...) - ret0, _ := ret[0].(*route53.ListReusableDelegationSetsOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListReusableDelegationSetsWithContext indicates an expected call of ListReusableDelegationSetsWithContext -func (mr *MockRoute53APIMockRecorder) ListReusableDelegationSetsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListReusableDelegationSetsWithContext", reflect.TypeOf((*MockRoute53API)(nil).ListReusableDelegationSetsWithContext), varargs...) -} - -// ListReusableDelegationSetsRequest mocks base method -func (m *MockRoute53API) ListReusableDelegationSetsRequest(arg0 *route53.ListReusableDelegationSetsInput) (*request.Request, *route53.ListReusableDelegationSetsOutput) { - ret := m.ctrl.Call(m, "ListReusableDelegationSetsRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.ListReusableDelegationSetsOutput) - return ret0, ret1 -} - -// ListReusableDelegationSetsRequest indicates an expected call of ListReusableDelegationSetsRequest -func (mr *MockRoute53APIMockRecorder) ListReusableDelegationSetsRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListReusableDelegationSetsRequest", reflect.TypeOf((*MockRoute53API)(nil).ListReusableDelegationSetsRequest), arg0) -} - -// ListTagsForResource mocks base method -func (m *MockRoute53API) ListTagsForResource(arg0 *route53.ListTagsForResourceInput) (*route53.ListTagsForResourceOutput, error) { - ret := m.ctrl.Call(m, "ListTagsForResource", arg0) - ret0, _ := ret[0].(*route53.ListTagsForResourceOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListTagsForResource indicates an expected call of ListTagsForResource -func (mr *MockRoute53APIMockRecorder) ListTagsForResource(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTagsForResource", reflect.TypeOf((*MockRoute53API)(nil).ListTagsForResource), arg0) -} - -// ListTagsForResourceWithContext mocks base method -func (m *MockRoute53API) ListTagsForResourceWithContext(arg0 aws.Context, arg1 *route53.ListTagsForResourceInput, arg2 ...request.Option) (*route53.ListTagsForResourceOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ListTagsForResourceWithContext", varargs...) - ret0, _ := ret[0].(*route53.ListTagsForResourceOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListTagsForResourceWithContext indicates an expected call of ListTagsForResourceWithContext -func (mr *MockRoute53APIMockRecorder) ListTagsForResourceWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTagsForResourceWithContext", reflect.TypeOf((*MockRoute53API)(nil).ListTagsForResourceWithContext), varargs...) -} - -// ListTagsForResourceRequest mocks base method -func (m *MockRoute53API) ListTagsForResourceRequest(arg0 *route53.ListTagsForResourceInput) (*request.Request, *route53.ListTagsForResourceOutput) { - ret := m.ctrl.Call(m, "ListTagsForResourceRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.ListTagsForResourceOutput) - return ret0, ret1 -} - -// ListTagsForResourceRequest indicates an expected call of ListTagsForResourceRequest -func (mr *MockRoute53APIMockRecorder) ListTagsForResourceRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTagsForResourceRequest", reflect.TypeOf((*MockRoute53API)(nil).ListTagsForResourceRequest), arg0) -} - -// ListTagsForResources mocks base method -func (m *MockRoute53API) ListTagsForResources(arg0 *route53.ListTagsForResourcesInput) (*route53.ListTagsForResourcesOutput, error) { - ret := m.ctrl.Call(m, "ListTagsForResources", arg0) - ret0, _ := ret[0].(*route53.ListTagsForResourcesOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListTagsForResources indicates an expected call of ListTagsForResources -func (mr *MockRoute53APIMockRecorder) ListTagsForResources(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTagsForResources", reflect.TypeOf((*MockRoute53API)(nil).ListTagsForResources), arg0) -} - -// ListTagsForResourcesWithContext mocks base method -func (m *MockRoute53API) ListTagsForResourcesWithContext(arg0 aws.Context, arg1 *route53.ListTagsForResourcesInput, arg2 ...request.Option) (*route53.ListTagsForResourcesOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ListTagsForResourcesWithContext", varargs...) - ret0, _ := ret[0].(*route53.ListTagsForResourcesOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListTagsForResourcesWithContext indicates an expected call of ListTagsForResourcesWithContext -func (mr *MockRoute53APIMockRecorder) ListTagsForResourcesWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTagsForResourcesWithContext", reflect.TypeOf((*MockRoute53API)(nil).ListTagsForResourcesWithContext), varargs...) -} - -// ListTagsForResourcesRequest mocks base method -func (m *MockRoute53API) ListTagsForResourcesRequest(arg0 *route53.ListTagsForResourcesInput) (*request.Request, *route53.ListTagsForResourcesOutput) { - ret := m.ctrl.Call(m, "ListTagsForResourcesRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.ListTagsForResourcesOutput) - return ret0, ret1 -} - -// ListTagsForResourcesRequest indicates an expected call of ListTagsForResourcesRequest -func (mr *MockRoute53APIMockRecorder) ListTagsForResourcesRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTagsForResourcesRequest", reflect.TypeOf((*MockRoute53API)(nil).ListTagsForResourcesRequest), arg0) -} - -// ListTrafficPolicies mocks base method -func (m *MockRoute53API) ListTrafficPolicies(arg0 *route53.ListTrafficPoliciesInput) (*route53.ListTrafficPoliciesOutput, error) { - ret := m.ctrl.Call(m, "ListTrafficPolicies", arg0) - ret0, _ := ret[0].(*route53.ListTrafficPoliciesOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListTrafficPolicies indicates an expected call of ListTrafficPolicies -func (mr *MockRoute53APIMockRecorder) ListTrafficPolicies(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTrafficPolicies", reflect.TypeOf((*MockRoute53API)(nil).ListTrafficPolicies), arg0) -} - -// ListTrafficPoliciesWithContext mocks base method -func (m *MockRoute53API) ListTrafficPoliciesWithContext(arg0 aws.Context, arg1 *route53.ListTrafficPoliciesInput, arg2 ...request.Option) (*route53.ListTrafficPoliciesOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ListTrafficPoliciesWithContext", varargs...) - ret0, _ := ret[0].(*route53.ListTrafficPoliciesOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListTrafficPoliciesWithContext indicates an expected call of ListTrafficPoliciesWithContext -func (mr *MockRoute53APIMockRecorder) ListTrafficPoliciesWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTrafficPoliciesWithContext", reflect.TypeOf((*MockRoute53API)(nil).ListTrafficPoliciesWithContext), varargs...) -} - -// ListTrafficPoliciesRequest mocks base method -func (m *MockRoute53API) ListTrafficPoliciesRequest(arg0 *route53.ListTrafficPoliciesInput) (*request.Request, *route53.ListTrafficPoliciesOutput) { - ret := m.ctrl.Call(m, "ListTrafficPoliciesRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.ListTrafficPoliciesOutput) - return ret0, ret1 -} - -// ListTrafficPoliciesRequest indicates an expected call of ListTrafficPoliciesRequest -func (mr *MockRoute53APIMockRecorder) ListTrafficPoliciesRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTrafficPoliciesRequest", reflect.TypeOf((*MockRoute53API)(nil).ListTrafficPoliciesRequest), arg0) -} - -// ListTrafficPolicyInstances mocks base method -func (m *MockRoute53API) ListTrafficPolicyInstances(arg0 *route53.ListTrafficPolicyInstancesInput) (*route53.ListTrafficPolicyInstancesOutput, error) { - ret := m.ctrl.Call(m, "ListTrafficPolicyInstances", arg0) - ret0, _ := ret[0].(*route53.ListTrafficPolicyInstancesOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListTrafficPolicyInstances indicates an expected call of ListTrafficPolicyInstances -func (mr *MockRoute53APIMockRecorder) ListTrafficPolicyInstances(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTrafficPolicyInstances", reflect.TypeOf((*MockRoute53API)(nil).ListTrafficPolicyInstances), arg0) -} - -// ListTrafficPolicyInstancesWithContext mocks base method -func (m *MockRoute53API) ListTrafficPolicyInstancesWithContext(arg0 aws.Context, arg1 *route53.ListTrafficPolicyInstancesInput, arg2 ...request.Option) (*route53.ListTrafficPolicyInstancesOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ListTrafficPolicyInstancesWithContext", varargs...) - ret0, _ := ret[0].(*route53.ListTrafficPolicyInstancesOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListTrafficPolicyInstancesWithContext indicates an expected call of ListTrafficPolicyInstancesWithContext -func (mr *MockRoute53APIMockRecorder) ListTrafficPolicyInstancesWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTrafficPolicyInstancesWithContext", reflect.TypeOf((*MockRoute53API)(nil).ListTrafficPolicyInstancesWithContext), varargs...) -} - -// ListTrafficPolicyInstancesRequest mocks base method -func (m *MockRoute53API) ListTrafficPolicyInstancesRequest(arg0 *route53.ListTrafficPolicyInstancesInput) (*request.Request, *route53.ListTrafficPolicyInstancesOutput) { - ret := m.ctrl.Call(m, "ListTrafficPolicyInstancesRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.ListTrafficPolicyInstancesOutput) - return ret0, ret1 -} - -// ListTrafficPolicyInstancesRequest indicates an expected call of ListTrafficPolicyInstancesRequest -func (mr *MockRoute53APIMockRecorder) ListTrafficPolicyInstancesRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTrafficPolicyInstancesRequest", reflect.TypeOf((*MockRoute53API)(nil).ListTrafficPolicyInstancesRequest), arg0) -} - -// ListTrafficPolicyInstancesByHostedZone mocks base method -func (m *MockRoute53API) ListTrafficPolicyInstancesByHostedZone(arg0 *route53.ListTrafficPolicyInstancesByHostedZoneInput) (*route53.ListTrafficPolicyInstancesByHostedZoneOutput, error) { - ret := m.ctrl.Call(m, "ListTrafficPolicyInstancesByHostedZone", arg0) - ret0, _ := ret[0].(*route53.ListTrafficPolicyInstancesByHostedZoneOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListTrafficPolicyInstancesByHostedZone indicates an expected call of ListTrafficPolicyInstancesByHostedZone -func (mr *MockRoute53APIMockRecorder) ListTrafficPolicyInstancesByHostedZone(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTrafficPolicyInstancesByHostedZone", reflect.TypeOf((*MockRoute53API)(nil).ListTrafficPolicyInstancesByHostedZone), arg0) -} - -// ListTrafficPolicyInstancesByHostedZoneWithContext mocks base method -func (m *MockRoute53API) ListTrafficPolicyInstancesByHostedZoneWithContext(arg0 aws.Context, arg1 *route53.ListTrafficPolicyInstancesByHostedZoneInput, arg2 ...request.Option) (*route53.ListTrafficPolicyInstancesByHostedZoneOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ListTrafficPolicyInstancesByHostedZoneWithContext", varargs...) - ret0, _ := ret[0].(*route53.ListTrafficPolicyInstancesByHostedZoneOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListTrafficPolicyInstancesByHostedZoneWithContext indicates an expected call of ListTrafficPolicyInstancesByHostedZoneWithContext -func (mr *MockRoute53APIMockRecorder) ListTrafficPolicyInstancesByHostedZoneWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTrafficPolicyInstancesByHostedZoneWithContext", reflect.TypeOf((*MockRoute53API)(nil).ListTrafficPolicyInstancesByHostedZoneWithContext), varargs...) -} - -// ListTrafficPolicyInstancesByHostedZoneRequest mocks base method -func (m *MockRoute53API) ListTrafficPolicyInstancesByHostedZoneRequest(arg0 *route53.ListTrafficPolicyInstancesByHostedZoneInput) (*request.Request, *route53.ListTrafficPolicyInstancesByHostedZoneOutput) { - ret := m.ctrl.Call(m, "ListTrafficPolicyInstancesByHostedZoneRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.ListTrafficPolicyInstancesByHostedZoneOutput) - return ret0, ret1 -} - -// ListTrafficPolicyInstancesByHostedZoneRequest indicates an expected call of ListTrafficPolicyInstancesByHostedZoneRequest -func (mr *MockRoute53APIMockRecorder) ListTrafficPolicyInstancesByHostedZoneRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTrafficPolicyInstancesByHostedZoneRequest", reflect.TypeOf((*MockRoute53API)(nil).ListTrafficPolicyInstancesByHostedZoneRequest), arg0) -} - -// ListTrafficPolicyInstancesByPolicy mocks base method -func (m *MockRoute53API) ListTrafficPolicyInstancesByPolicy(arg0 *route53.ListTrafficPolicyInstancesByPolicyInput) (*route53.ListTrafficPolicyInstancesByPolicyOutput, error) { - ret := m.ctrl.Call(m, "ListTrafficPolicyInstancesByPolicy", arg0) - ret0, _ := ret[0].(*route53.ListTrafficPolicyInstancesByPolicyOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListTrafficPolicyInstancesByPolicy indicates an expected call of ListTrafficPolicyInstancesByPolicy -func (mr *MockRoute53APIMockRecorder) ListTrafficPolicyInstancesByPolicy(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTrafficPolicyInstancesByPolicy", reflect.TypeOf((*MockRoute53API)(nil).ListTrafficPolicyInstancesByPolicy), arg0) -} - -// ListTrafficPolicyInstancesByPolicyWithContext mocks base method -func (m *MockRoute53API) ListTrafficPolicyInstancesByPolicyWithContext(arg0 aws.Context, arg1 *route53.ListTrafficPolicyInstancesByPolicyInput, arg2 ...request.Option) (*route53.ListTrafficPolicyInstancesByPolicyOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ListTrafficPolicyInstancesByPolicyWithContext", varargs...) - ret0, _ := ret[0].(*route53.ListTrafficPolicyInstancesByPolicyOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListTrafficPolicyInstancesByPolicyWithContext indicates an expected call of ListTrafficPolicyInstancesByPolicyWithContext -func (mr *MockRoute53APIMockRecorder) ListTrafficPolicyInstancesByPolicyWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTrafficPolicyInstancesByPolicyWithContext", reflect.TypeOf((*MockRoute53API)(nil).ListTrafficPolicyInstancesByPolicyWithContext), varargs...) -} - -// ListTrafficPolicyInstancesByPolicyRequest mocks base method -func (m *MockRoute53API) ListTrafficPolicyInstancesByPolicyRequest(arg0 *route53.ListTrafficPolicyInstancesByPolicyInput) (*request.Request, *route53.ListTrafficPolicyInstancesByPolicyOutput) { - ret := m.ctrl.Call(m, "ListTrafficPolicyInstancesByPolicyRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.ListTrafficPolicyInstancesByPolicyOutput) - return ret0, ret1 -} - -// ListTrafficPolicyInstancesByPolicyRequest indicates an expected call of ListTrafficPolicyInstancesByPolicyRequest -func (mr *MockRoute53APIMockRecorder) ListTrafficPolicyInstancesByPolicyRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTrafficPolicyInstancesByPolicyRequest", reflect.TypeOf((*MockRoute53API)(nil).ListTrafficPolicyInstancesByPolicyRequest), arg0) -} - -// ListTrafficPolicyVersions mocks base method -func (m *MockRoute53API) ListTrafficPolicyVersions(arg0 *route53.ListTrafficPolicyVersionsInput) (*route53.ListTrafficPolicyVersionsOutput, error) { - ret := m.ctrl.Call(m, "ListTrafficPolicyVersions", arg0) - ret0, _ := ret[0].(*route53.ListTrafficPolicyVersionsOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListTrafficPolicyVersions indicates an expected call of ListTrafficPolicyVersions -func (mr *MockRoute53APIMockRecorder) ListTrafficPolicyVersions(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTrafficPolicyVersions", reflect.TypeOf((*MockRoute53API)(nil).ListTrafficPolicyVersions), arg0) -} - -// ListTrafficPolicyVersionsWithContext mocks base method -func (m *MockRoute53API) ListTrafficPolicyVersionsWithContext(arg0 aws.Context, arg1 *route53.ListTrafficPolicyVersionsInput, arg2 ...request.Option) (*route53.ListTrafficPolicyVersionsOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ListTrafficPolicyVersionsWithContext", varargs...) - ret0, _ := ret[0].(*route53.ListTrafficPolicyVersionsOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListTrafficPolicyVersionsWithContext indicates an expected call of ListTrafficPolicyVersionsWithContext -func (mr *MockRoute53APIMockRecorder) ListTrafficPolicyVersionsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTrafficPolicyVersionsWithContext", reflect.TypeOf((*MockRoute53API)(nil).ListTrafficPolicyVersionsWithContext), varargs...) -} - -// ListTrafficPolicyVersionsRequest mocks base method -func (m *MockRoute53API) ListTrafficPolicyVersionsRequest(arg0 *route53.ListTrafficPolicyVersionsInput) (*request.Request, *route53.ListTrafficPolicyVersionsOutput) { - ret := m.ctrl.Call(m, "ListTrafficPolicyVersionsRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.ListTrafficPolicyVersionsOutput) - return ret0, ret1 -} - -// ListTrafficPolicyVersionsRequest indicates an expected call of ListTrafficPolicyVersionsRequest -func (mr *MockRoute53APIMockRecorder) ListTrafficPolicyVersionsRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTrafficPolicyVersionsRequest", reflect.TypeOf((*MockRoute53API)(nil).ListTrafficPolicyVersionsRequest), arg0) -} - -// ListVPCAssociationAuthorizations mocks base method -func (m *MockRoute53API) ListVPCAssociationAuthorizations(arg0 *route53.ListVPCAssociationAuthorizationsInput) (*route53.ListVPCAssociationAuthorizationsOutput, error) { - ret := m.ctrl.Call(m, "ListVPCAssociationAuthorizations", arg0) - ret0, _ := ret[0].(*route53.ListVPCAssociationAuthorizationsOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListVPCAssociationAuthorizations indicates an expected call of ListVPCAssociationAuthorizations -func (mr *MockRoute53APIMockRecorder) ListVPCAssociationAuthorizations(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVPCAssociationAuthorizations", reflect.TypeOf((*MockRoute53API)(nil).ListVPCAssociationAuthorizations), arg0) -} - -// ListVPCAssociationAuthorizationsWithContext mocks base method -func (m *MockRoute53API) ListVPCAssociationAuthorizationsWithContext(arg0 aws.Context, arg1 *route53.ListVPCAssociationAuthorizationsInput, arg2 ...request.Option) (*route53.ListVPCAssociationAuthorizationsOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ListVPCAssociationAuthorizationsWithContext", varargs...) - ret0, _ := ret[0].(*route53.ListVPCAssociationAuthorizationsOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListVPCAssociationAuthorizationsWithContext indicates an expected call of ListVPCAssociationAuthorizationsWithContext -func (mr *MockRoute53APIMockRecorder) ListVPCAssociationAuthorizationsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVPCAssociationAuthorizationsWithContext", reflect.TypeOf((*MockRoute53API)(nil).ListVPCAssociationAuthorizationsWithContext), varargs...) -} - -// ListVPCAssociationAuthorizationsRequest mocks base method -func (m *MockRoute53API) ListVPCAssociationAuthorizationsRequest(arg0 *route53.ListVPCAssociationAuthorizationsInput) (*request.Request, *route53.ListVPCAssociationAuthorizationsOutput) { - ret := m.ctrl.Call(m, "ListVPCAssociationAuthorizationsRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.ListVPCAssociationAuthorizationsOutput) - return ret0, ret1 -} - -// ListVPCAssociationAuthorizationsRequest indicates an expected call of ListVPCAssociationAuthorizationsRequest -func (mr *MockRoute53APIMockRecorder) ListVPCAssociationAuthorizationsRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVPCAssociationAuthorizationsRequest", reflect.TypeOf((*MockRoute53API)(nil).ListVPCAssociationAuthorizationsRequest), arg0) -} - -// TestDNSAnswer mocks base method -func (m *MockRoute53API) TestDNSAnswer(arg0 *route53.TestDNSAnswerInput) (*route53.TestDNSAnswerOutput, error) { - ret := m.ctrl.Call(m, "TestDNSAnswer", arg0) - ret0, _ := ret[0].(*route53.TestDNSAnswerOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// TestDNSAnswer indicates an expected call of TestDNSAnswer -func (mr *MockRoute53APIMockRecorder) TestDNSAnswer(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TestDNSAnswer", reflect.TypeOf((*MockRoute53API)(nil).TestDNSAnswer), arg0) -} - -// TestDNSAnswerWithContext mocks base method -func (m *MockRoute53API) TestDNSAnswerWithContext(arg0 aws.Context, arg1 *route53.TestDNSAnswerInput, arg2 ...request.Option) (*route53.TestDNSAnswerOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "TestDNSAnswerWithContext", varargs...) - ret0, _ := ret[0].(*route53.TestDNSAnswerOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// TestDNSAnswerWithContext indicates an expected call of TestDNSAnswerWithContext -func (mr *MockRoute53APIMockRecorder) TestDNSAnswerWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TestDNSAnswerWithContext", reflect.TypeOf((*MockRoute53API)(nil).TestDNSAnswerWithContext), varargs...) -} - -// TestDNSAnswerRequest mocks base method -func (m *MockRoute53API) TestDNSAnswerRequest(arg0 *route53.TestDNSAnswerInput) (*request.Request, *route53.TestDNSAnswerOutput) { - ret := m.ctrl.Call(m, "TestDNSAnswerRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.TestDNSAnswerOutput) - return ret0, ret1 -} - -// TestDNSAnswerRequest indicates an expected call of TestDNSAnswerRequest -func (mr *MockRoute53APIMockRecorder) TestDNSAnswerRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TestDNSAnswerRequest", reflect.TypeOf((*MockRoute53API)(nil).TestDNSAnswerRequest), arg0) -} - -// UpdateHealthCheck mocks base method -func (m *MockRoute53API) UpdateHealthCheck(arg0 *route53.UpdateHealthCheckInput) (*route53.UpdateHealthCheckOutput, error) { - ret := m.ctrl.Call(m, "UpdateHealthCheck", arg0) - ret0, _ := ret[0].(*route53.UpdateHealthCheckOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateHealthCheck indicates an expected call of UpdateHealthCheck -func (mr *MockRoute53APIMockRecorder) UpdateHealthCheck(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateHealthCheck", reflect.TypeOf((*MockRoute53API)(nil).UpdateHealthCheck), arg0) -} - -// UpdateHealthCheckWithContext mocks base method -func (m *MockRoute53API) UpdateHealthCheckWithContext(arg0 aws.Context, arg1 *route53.UpdateHealthCheckInput, arg2 ...request.Option) (*route53.UpdateHealthCheckOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "UpdateHealthCheckWithContext", varargs...) - ret0, _ := ret[0].(*route53.UpdateHealthCheckOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateHealthCheckWithContext indicates an expected call of UpdateHealthCheckWithContext -func (mr *MockRoute53APIMockRecorder) UpdateHealthCheckWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateHealthCheckWithContext", reflect.TypeOf((*MockRoute53API)(nil).UpdateHealthCheckWithContext), varargs...) -} - -// UpdateHealthCheckRequest mocks base method -func (m *MockRoute53API) UpdateHealthCheckRequest(arg0 *route53.UpdateHealthCheckInput) (*request.Request, *route53.UpdateHealthCheckOutput) { - ret := m.ctrl.Call(m, "UpdateHealthCheckRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.UpdateHealthCheckOutput) - return ret0, ret1 -} - -// UpdateHealthCheckRequest indicates an expected call of UpdateHealthCheckRequest -func (mr *MockRoute53APIMockRecorder) UpdateHealthCheckRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateHealthCheckRequest", reflect.TypeOf((*MockRoute53API)(nil).UpdateHealthCheckRequest), arg0) -} - -// UpdateHostedZoneComment mocks base method -func (m *MockRoute53API) UpdateHostedZoneComment(arg0 *route53.UpdateHostedZoneCommentInput) (*route53.UpdateHostedZoneCommentOutput, error) { - ret := m.ctrl.Call(m, "UpdateHostedZoneComment", arg0) - ret0, _ := ret[0].(*route53.UpdateHostedZoneCommentOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateHostedZoneComment indicates an expected call of UpdateHostedZoneComment -func (mr *MockRoute53APIMockRecorder) UpdateHostedZoneComment(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateHostedZoneComment", reflect.TypeOf((*MockRoute53API)(nil).UpdateHostedZoneComment), arg0) -} - -// UpdateHostedZoneCommentWithContext mocks base method -func (m *MockRoute53API) UpdateHostedZoneCommentWithContext(arg0 aws.Context, arg1 *route53.UpdateHostedZoneCommentInput, arg2 ...request.Option) (*route53.UpdateHostedZoneCommentOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "UpdateHostedZoneCommentWithContext", varargs...) - ret0, _ := ret[0].(*route53.UpdateHostedZoneCommentOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateHostedZoneCommentWithContext indicates an expected call of UpdateHostedZoneCommentWithContext -func (mr *MockRoute53APIMockRecorder) UpdateHostedZoneCommentWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateHostedZoneCommentWithContext", reflect.TypeOf((*MockRoute53API)(nil).UpdateHostedZoneCommentWithContext), varargs...) -} - -// UpdateHostedZoneCommentRequest mocks base method -func (m *MockRoute53API) UpdateHostedZoneCommentRequest(arg0 *route53.UpdateHostedZoneCommentInput) (*request.Request, *route53.UpdateHostedZoneCommentOutput) { - ret := m.ctrl.Call(m, "UpdateHostedZoneCommentRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.UpdateHostedZoneCommentOutput) - return ret0, ret1 -} - -// UpdateHostedZoneCommentRequest indicates an expected call of UpdateHostedZoneCommentRequest -func (mr *MockRoute53APIMockRecorder) UpdateHostedZoneCommentRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateHostedZoneCommentRequest", reflect.TypeOf((*MockRoute53API)(nil).UpdateHostedZoneCommentRequest), arg0) -} - -// UpdateTrafficPolicyComment mocks base method -func (m *MockRoute53API) UpdateTrafficPolicyComment(arg0 *route53.UpdateTrafficPolicyCommentInput) (*route53.UpdateTrafficPolicyCommentOutput, error) { - ret := m.ctrl.Call(m, "UpdateTrafficPolicyComment", arg0) - ret0, _ := ret[0].(*route53.UpdateTrafficPolicyCommentOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateTrafficPolicyComment indicates an expected call of UpdateTrafficPolicyComment -func (mr *MockRoute53APIMockRecorder) UpdateTrafficPolicyComment(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTrafficPolicyComment", reflect.TypeOf((*MockRoute53API)(nil).UpdateTrafficPolicyComment), arg0) -} - -// UpdateTrafficPolicyCommentWithContext mocks base method -func (m *MockRoute53API) UpdateTrafficPolicyCommentWithContext(arg0 aws.Context, arg1 *route53.UpdateTrafficPolicyCommentInput, arg2 ...request.Option) (*route53.UpdateTrafficPolicyCommentOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "UpdateTrafficPolicyCommentWithContext", varargs...) - ret0, _ := ret[0].(*route53.UpdateTrafficPolicyCommentOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateTrafficPolicyCommentWithContext indicates an expected call of UpdateTrafficPolicyCommentWithContext -func (mr *MockRoute53APIMockRecorder) UpdateTrafficPolicyCommentWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTrafficPolicyCommentWithContext", reflect.TypeOf((*MockRoute53API)(nil).UpdateTrafficPolicyCommentWithContext), varargs...) -} - -// UpdateTrafficPolicyCommentRequest mocks base method -func (m *MockRoute53API) UpdateTrafficPolicyCommentRequest(arg0 *route53.UpdateTrafficPolicyCommentInput) (*request.Request, *route53.UpdateTrafficPolicyCommentOutput) { - ret := m.ctrl.Call(m, "UpdateTrafficPolicyCommentRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.UpdateTrafficPolicyCommentOutput) - return ret0, ret1 -} - -// UpdateTrafficPolicyCommentRequest indicates an expected call of UpdateTrafficPolicyCommentRequest -func (mr *MockRoute53APIMockRecorder) UpdateTrafficPolicyCommentRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTrafficPolicyCommentRequest", reflect.TypeOf((*MockRoute53API)(nil).UpdateTrafficPolicyCommentRequest), arg0) -} - -// UpdateTrafficPolicyInstance mocks base method -func (m *MockRoute53API) UpdateTrafficPolicyInstance(arg0 *route53.UpdateTrafficPolicyInstanceInput) (*route53.UpdateTrafficPolicyInstanceOutput, error) { - ret := m.ctrl.Call(m, "UpdateTrafficPolicyInstance", arg0) - ret0, _ := ret[0].(*route53.UpdateTrafficPolicyInstanceOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateTrafficPolicyInstance indicates an expected call of UpdateTrafficPolicyInstance -func (mr *MockRoute53APIMockRecorder) UpdateTrafficPolicyInstance(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTrafficPolicyInstance", reflect.TypeOf((*MockRoute53API)(nil).UpdateTrafficPolicyInstance), arg0) -} - -// UpdateTrafficPolicyInstanceWithContext mocks base method -func (m *MockRoute53API) UpdateTrafficPolicyInstanceWithContext(arg0 aws.Context, arg1 *route53.UpdateTrafficPolicyInstanceInput, arg2 ...request.Option) (*route53.UpdateTrafficPolicyInstanceOutput, error) { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "UpdateTrafficPolicyInstanceWithContext", varargs...) - ret0, _ := ret[0].(*route53.UpdateTrafficPolicyInstanceOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateTrafficPolicyInstanceWithContext indicates an expected call of UpdateTrafficPolicyInstanceWithContext -func (mr *MockRoute53APIMockRecorder) UpdateTrafficPolicyInstanceWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTrafficPolicyInstanceWithContext", reflect.TypeOf((*MockRoute53API)(nil).UpdateTrafficPolicyInstanceWithContext), varargs...) -} - -// UpdateTrafficPolicyInstanceRequest mocks base method -func (m *MockRoute53API) UpdateTrafficPolicyInstanceRequest(arg0 *route53.UpdateTrafficPolicyInstanceInput) (*request.Request, *route53.UpdateTrafficPolicyInstanceOutput) { - ret := m.ctrl.Call(m, "UpdateTrafficPolicyInstanceRequest", arg0) - ret0, _ := ret[0].(*request.Request) - ret1, _ := ret[1].(*route53.UpdateTrafficPolicyInstanceOutput) - return ret0, ret1 -} - -// UpdateTrafficPolicyInstanceRequest indicates an expected call of UpdateTrafficPolicyInstanceRequest -func (mr *MockRoute53APIMockRecorder) UpdateTrafficPolicyInstanceRequest(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTrafficPolicyInstanceRequest", reflect.TypeOf((*MockRoute53API)(nil).UpdateTrafficPolicyInstanceRequest), arg0) -} - -// WaitUntilResourceRecordSetsChanged mocks base method -func (m *MockRoute53API) WaitUntilResourceRecordSetsChanged(arg0 *route53.GetChangeInput) error { - ret := m.ctrl.Call(m, "WaitUntilResourceRecordSetsChanged", arg0) - ret0, _ := ret[0].(error) - return ret0 -} - -// WaitUntilResourceRecordSetsChanged indicates an expected call of WaitUntilResourceRecordSetsChanged -func (mr *MockRoute53APIMockRecorder) WaitUntilResourceRecordSetsChanged(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitUntilResourceRecordSetsChanged", reflect.TypeOf((*MockRoute53API)(nil).WaitUntilResourceRecordSetsChanged), arg0) -} - -// WaitUntilResourceRecordSetsChangedWithContext mocks base method -func (m *MockRoute53API) WaitUntilResourceRecordSetsChangedWithContext(arg0 aws.Context, arg1 *route53.GetChangeInput, arg2 ...request.WaiterOption) error { - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "WaitUntilResourceRecordSetsChangedWithContext", varargs...) - ret0, _ := ret[0].(error) - return ret0 -} - -// WaitUntilResourceRecordSetsChangedWithContext indicates an expected call of WaitUntilResourceRecordSetsChangedWithContext -func (mr *MockRoute53APIMockRecorder) WaitUntilResourceRecordSetsChangedWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { - varargs := append([]interface{}{arg0, arg1}, arg2...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitUntilResourceRecordSetsChangedWithContext", reflect.TypeOf((*MockRoute53API)(nil).WaitUntilResourceRecordSetsChangedWithContext), varargs...) -}