├── examples
├── test_spec
│ ├── twilio_format_v1.yaml
│ ├── twilio_nestedmodel_v1.yaml
│ ├── twilio_response_v1.yaml
│ ├── java
│ │ └── twilio_customfeature_v1.yaml
│ └── twilio_auth_v1.yaml
├── node
│ ├── Dockerfile-prettier
│ ├── sonar-project.properties
│ ├── src
│ │ └── rest
│ │ │ ├── ApiBase.ts
│ │ │ ├── FlexApiBase.ts
│ │ │ ├── VersionlessBase.ts
│ │ │ ├── Twilio.ts
│ │ │ ├── OauthBase.ts
│ │ │ ├── oauth
│ │ │ └── V2.ts
│ │ │ └── versionless
│ │ │ ├── DeployedDevices.ts
│ │ │ └── Understand.ts
│ ├── Dockerfile
│ └── spec
│ │ └── unit
│ │ └── call.spec.ts
├── python
│ ├── setup.cfg
│ ├── Dockerfile-prettier
│ ├── sonar-project.properties
│ ├── twilio
│ │ └── rest
│ │ │ ├── versionless
│ │ │ └── __init__.py
│ │ │ ├── flex_api
│ │ │ └── __init__.py
│ │ │ ├── api
│ │ │ └── __init__.py
│ │ │ ├── __init__.py
│ │ │ └── oauth
│ │ │ └── v2
│ │ │ └── __init__.py
│ └── Dockerfile
├── ruby
│ ├── lib
│ │ └── twilio-ruby
│ │ │ └── rest
│ │ │ ├── oauth.rb
│ │ │ ├── api.rb
│ │ │ ├── flex_api.rb
│ │ │ ├── preview_iam.rb
│ │ │ ├── versionless.rb
│ │ │ ├── api_base.rb
│ │ │ ├── flex_api_base.rb
│ │ │ ├── versionless_base.rb
│ │ │ ├── oauth_base.rb
│ │ │ ├── oauth
│ │ │ └── v2.rb
│ │ │ ├── preview_iam_base.rb
│ │ │ ├── versionless
│ │ │ └── understand.rb
│ │ │ └── preview_iam
│ │ │ └── v1.rb
│ ├── Dockerfile-formatter
│ ├── sonar-project.properties
│ ├── Dockerfile
│ └── spec
│ │ └── integration
│ │ ├── flex_spec.rb
│ │ └── versionless_spec.rb
├── go
│ ├── Dockerfile-goimports
│ ├── go-client
│ │ ├── helper
│ │ │ ├── README.md
│ │ │ ├── rest
│ │ │ │ ├── api
│ │ │ │ │ └── v2010
│ │ │ │ │ │ ├── model_list_health_check.go
│ │ │ │ │ │ ├── model_test_response_object_test_object.go
│ │ │ │ │ │ ├── api_service.go
│ │ │ │ │ │ └── model_list_account_response.go
│ │ │ │ ├── oauth
│ │ │ │ │ └── v2
│ │ │ │ │ │ ├── model_auth0_refresh_token_response.go
│ │ │ │ │ │ ├── model_auth0_test_login_request.go
│ │ │ │ │ │ ├── model_auth0_login_email_request.go
│ │ │ │ │ │ ├── model_auth0_test_login_response.go
│ │ │ │ │ │ ├── model_auth0_authorize_response.go
│ │ │ │ │ │ ├── model_auth0_token_response.go
│ │ │ │ │ │ ├── model_auth0_refresh_scoped_token_request.go
│ │ │ │ │ │ ├── model_error.go
│ │ │ │ │ │ ├── model_auth0_signup_request.go
│ │ │ │ │ │ ├── model_auth0_authentication_code_exchange_request.go
│ │ │ │ │ │ ├── api_service.go
│ │ │ │ │ │ └── model_v2_oauth2_token_response.go
│ │ │ │ └── flex
│ │ │ │ │ └── v1
│ │ │ │ │ ├── model_update_call_response.go
│ │ │ │ │ ├── model_list_credential_aws_response.go
│ │ │ │ │ ├── model_test_response_object.go
│ │ │ │ │ ├── model_list_credential_aws_response_meta.go
│ │ │ │ │ ├── api_service.go
│ │ │ │ │ └── voice.go
│ │ │ └── client
│ │ │ │ └── test_client.go
│ │ └── go.mod
│ ├── sonar-project.properties
│ └── Dockerfile
├── csharp
│ ├── sonar-project.properties
│ ├── test.sh
│ ├── src
│ │ └── Twilio
│ │ │ └── Rest
│ │ │ ├── Domain.cs
│ │ │ ├── Versionless
│ │ │ └── Understand
│ │ │ │ └── AssistantOptions.cs
│ │ │ └── FlexApi
│ │ │ └── V1
│ │ │ └── CallOptions.cs
│ ├── Dockerfile
│ └── integrationTest
│ │ └── Rest
│ │ └── TestRestClient.cs
├── java
│ ├── sonar-project.properties
│ ├── src
│ │ └── main
│ │ │ └── java
│ │ │ └── com
│ │ │ └── twilio
│ │ │ └── Domains.java
│ ├── Dockerfile
│ ├── integration-test
│ │ └── rest
│ │ │ └── TestRestClient.java
│ └── unit-test
│ │ └── rest
│ │ └── TwilioNestedTest.java
└── php
│ ├── sonar-project.properties
│ ├── tests
│ └── Twilio
│ │ └── Integration
│ │ └── Rest
│ │ └── TwilioRestFlexIntegrationTest.php
│ ├── Dockerfile
│ └── src
│ └── Twilio
│ └── Rest
│ └── PreviewIam.php
├── specs_test
└── test_spec
│ ├── twilio_format_v1.yaml
│ ├── twilio_nestedmodel_v1.yaml
│ ├── twilio_response_v1.yaml
│ ├── java
│ └── twilio_customfeature_v1.yaml
│ └── twilio_auth_v1.yaml
├── src
├── main
│ ├── resources
│ │ ├── twilio-java
│ │ │ ├── Readme.md
│ │ │ ├── reader
│ │ │ │ ├── paginationMethods.mustache
│ │ │ │ └── setters.mustache
│ │ │ ├── common
│ │ │ │ ├── constructors.mustache
│ │ │ │ ├── addPostParamsJson.mustache
│ │ │ │ ├── instanceVariables.mustache
│ │ │ │ ├── addHeaderParams.mustache
│ │ │ │ ├── addPostParams.mustache
│ │ │ │ ├── generateUri.mustache
│ │ │ │ └── setters.mustache
│ │ │ ├── licenseInfo.mustache
│ │ │ ├── api.mustache
│ │ │ ├── enums.mustache
│ │ │ ├── equalsAndHashcode.mustache
│ │ │ ├── fetcher.mustache
│ │ │ ├── modelEqualsAndHashCode.mustache
│ │ │ ├── reader.mustache
│ │ │ ├── deleter.mustache
│ │ │ ├── creator.mustache
│ │ │ ├── updater.mustache
│ │ │ ├── response.mustache
│ │ │ ├── creator
│ │ │ │ └── setters.mustache
│ │ │ ├── deleter
│ │ │ │ └── setters.mustache
│ │ │ ├── fetcher
│ │ │ │ └── setters.mustache
│ │ │ └── updater
│ │ │ │ └── setters.mustache
│ │ ├── twilio-java-legacy
│ │ │ ├── api_doc.mustache
│ │ │ ├── api_test.mustache
│ │ │ ├── packageName.mustache
│ │ │ ├── prefixedCollapsibleMapQParams.mustache
│ │ │ ├── postParams_body.mustache
│ │ │ ├── licenseInfo.mustache
│ │ │ ├── dateParams.mustache
│ │ │ ├── generate_uri.mustache
│ │ │ ├── dateTimeGroupParams.mustache
│ │ │ ├── enums.mustache
│ │ │ └── headerParams.mustache
│ │ ├── terraform-provider-twilio
│ │ │ ├── api_doc.mustache
│ │ │ ├── model_doc.mustache
│ │ │ ├── model.mustache
│ │ │ ├── README.mustache
│ │ │ └── partial_header.mustache
│ │ ├── twilio-csharp
│ │ │ ├── resource
│ │ │ │ ├── ReturnComments.mustache
│ │ │ │ ├── ReturnCommentsAsync.mustache
│ │ │ │ ├── MethodsComments.mustache
│ │ │ │ ├── GeneratePath.mustache
│ │ │ │ ├── ResponseModel.mustache
│ │ │ │ └── Enum.mustache
│ │ │ ├── Summary.mustache
│ │ │ ├── options
│ │ │ │ ├── MethodsComments.mustache
│ │ │ │ ├── Params.mustache
│ │ │ │ ├── GetBody.mustache
│ │ │ │ ├── HeaderParams.mustache
│ │ │ │ ├── ReadOptions.mustache
│ │ │ │ ├── FetchOptions.mustache
│ │ │ │ ├── DeleteOptions.mustache
│ │ │ │ ├── CreateOptions.mustache
│ │ │ │ └── UpdateOptions.mustache
│ │ │ ├── OptionsUsings.mustache
│ │ │ ├── ResourceUsings.mustache
│ │ │ ├── ToJson.mustache
│ │ │ ├── LicenseInfo.mustache
│ │ │ ├── FromJson.mustache
│ │ │ ├── Options.mustache
│ │ │ └── Resource.mustache
│ │ ├── twilio-ruby
│ │ │ ├── params.mustache
│ │ │ ├── parentContext.mustache
│ │ │ ├── api.mustache
│ │ │ ├── licenseInfo.mustache
│ │ │ ├── modelClasses.mustache
│ │ │ └── page.mustache
│ │ ├── META-INF
│ │ │ └── services
│ │ │ │ ├── org.openapitools.codegen.api.TemplatingEngineAdapter
│ │ │ │ └── org.openapitools.codegen.CodegenConfig
│ │ ├── config
│ │ │ └── toggles.json
│ │ ├── twilio-python
│ │ │ ├── model.handlebars
│ │ │ ├── licenseInfo.handlebars
│ │ │ ├── pagination.handlebars
│ │ │ ├── modelClasses.handlebars
│ │ │ └── contextMethods.handlebars
│ │ ├── twilio-go
│ │ │ ├── model.mustache
│ │ │ ├── model_enum.mustache
│ │ │ ├── partial_header.mustache
│ │ │ ├── api_service.mustache
│ │ │ └── model_doc.mustache
│ │ ├── twilio-php
│ │ │ ├── models
│ │ │ │ ├── modelMethod.mustache
│ │ │ │ └── modelClass.mustache
│ │ │ ├── models.mustache
│ │ │ ├── options.mustache
│ │ │ ├── licenseInfo.mustache
│ │ │ ├── imports.mustache
│ │ │ ├── options
│ │ │ │ ├── optionMethodArgs.mustache
│ │ │ │ └── optionMethod.mustache
│ │ │ └── magicGetterandCaller.mustache
│ │ └── twilio-node
│ │ │ ├── imports.mustache
│ │ │ ├── licenseInfo.mustache
│ │ │ ├── model.mustache
│ │ │ ├── requestParam.mustache
│ │ │ ├── version.mustache
│ │ │ ├── pagination.mustache
│ │ │ └── operationSignature.mustache
│ └── java
│ │ └── com
│ │ └── twilio
│ │ └── oai
│ │ ├── common
│ │ └── LanguageDataType.java
│ │ ├── template
│ │ ├── IApiActionTemplate.java
│ │ ├── NodeApiActionTemplate.java
│ │ ├── RubyApiActionTemplate.java
│ │ ├── CsharpApiActionTemplate.java
│ │ ├── JavaApiActionTemplate.java
│ │ └── PythonApiActionTemplate.java
│ │ ├── java
│ │ ├── processor
│ │ │ ├── PaginationStrategy.java
│ │ │ ├── enums
│ │ │ │ ├── EnumProcessor.java
│ │ │ │ ├── property
│ │ │ │ │ └── PropertyEnumProcessor.java
│ │ │ │ └── parameter
│ │ │ │ │ └── ParameterEnumProcessor.java
│ │ │ ├── responsebody
│ │ │ │ ├── ResponseProcessor.java
│ │ │ │ └── ResponseProcessorFactory.java
│ │ │ ├── requestbody
│ │ │ │ ├── RequestBodyProcessor.java
│ │ │ │ ├── RequestBodyProcessorFactory.java
│ │ │ │ └── UrlEncodedProcessor.java
│ │ │ ├── model
│ │ │ │ ├── ModelProcessor.java
│ │ │ │ ├── parameter
│ │ │ │ │ ├── ModelProcessor.java
│ │ │ │ │ └── ParamModelProcessorManager.java
│ │ │ │ └── ModelProcessorFactory.java
│ │ │ └── auth
│ │ │ │ ├── SecuritySchemeProcessor.java
│ │ │ │ ├── Auth.java
│ │ │ │ └── NoAuth.java
│ │ ├── format
│ │ │ ├── Promotion.java
│ │ │ └── Deserializer.java
│ │ ├── feature
│ │ │ ├── datamodels
│ │ │ │ └── DataModel.java
│ │ │ └── constructor
│ │ ├── cache
│ │ │ └── ResourceCacheContext.java
│ │ └── nestedmodels
│ │ │ ├── MustacheOneOfIface.java
│ │ │ └── MustacheOneOf.java
│ │ ├── resolver
│ │ ├── DataSanitizer.java
│ │ ├── CaseResolver.java
│ │ ├── java
│ │ │ ├── JavaIngressResolver.java
│ │ │ └── JavaCaseResolver.java
│ │ ├── IConventionMapper.java
│ │ ├── go
│ │ │ └── GoCaseResolver.java
│ │ ├── csharp
│ │ │ ├── CSharpCaseResolver.java
│ │ │ ├── OperationStore.java
│ │ │ └── ParameterFormat.java
│ │ ├── ruby
│ │ │ ├── RubyCaseResolver.java
│ │ │ └── RubyPropertyResolver.java
│ │ ├── php
│ │ │ └── PhpCaseResolver.java
│ │ ├── python
│ │ │ └── PythonCaseResolver.java
│ │ ├── node
│ │ │ └── NodeCaseResolver.java
│ │ ├── common
│ │ │ ├── CodegenParameterDataTypeResolver.java
│ │ │ └── CodegenModelComplexResolver.java
│ │ └── README.md
│ │ ├── templating
│ │ ├── handlebars
│ │ │ └── TwilioHelpers.java
│ │ └── mustache
│ │ │ ├── TitleCamelCaseLambda.java
│ │ │ └── TitleCaseLambda.java
│ │ ├── HttpMethod.java
│ │ ├── Segments.java
│ │ ├── api
│ │ ├── PhpApiResources.java
│ │ ├── RubyApiResources.java
│ │ ├── CsharpApiResources.java
│ │ ├── JavaApiResources.java
│ │ └── IApiResourceBuilder.java
│ │ ├── resource
│ │ └── IResourceTree.java
│ │ └── LoggerUtil.java
└── test
│ ├── resources
│ └── config
│ │ └── test_toggles.json
│ └── java
│ └── com
│ └── twilio
│ └── oai
│ ├── HttpMethodTest.java
│ ├── StringHelperTest.java
│ ├── DirectoryStructureServiceTest.java
│ └── InflectorTest.java
├── scripts
├── __init__.py
└── prism.sh
├── .gitignore
├── Makefile
├── .github
└── ISSUE_TEMPLATE
│ └── config.yml
├── ISSUE_TEMPLATE.md
└── LICENSE
/examples/test_spec/twilio_format_v1.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/specs_test/test_spec/twilio_format_v1.yaml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/main/resources/twilio-java/Readme.md:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/main/resources/twilio-java-legacy/api_doc.mustache:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/main/resources/twilio-java-legacy/api_test.mustache:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/main/resources/twilio-java/reader/paginationMethods.mustache:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/main/resources/terraform-provider-twilio/api_doc.mustache:
--------------------------------------------------------------------------------
1 | TODO
2 |
--------------------------------------------------------------------------------
/src/main/resources/terraform-provider-twilio/model_doc.mustache:
--------------------------------------------------------------------------------
1 | Ignore me
2 |
--------------------------------------------------------------------------------
/src/main/resources/terraform-provider-twilio/model.mustache:
--------------------------------------------------------------------------------
1 | package openapi
2 |
--------------------------------------------------------------------------------
/scripts/__init__.py:
--------------------------------------------------------------------------------
1 | import os
2 | import sys
3 |
4 | sys.path.append(os.path.dirname(os.path.realpath(__file__)))
5 |
--------------------------------------------------------------------------------
/src/main/resources/twilio-csharp/resource/ReturnComments.mustache:
--------------------------------------------------------------------------------
1 | /// A single instance of {{apiName}}
--------------------------------------------------------------------------------
/src/test/resources/config/test_toggles.json:
--------------------------------------------------------------------------------
1 | {
2 | "json_ingress": {
3 | "twilio-java-legacy": true
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/examples/node/Dockerfile-prettier:
--------------------------------------------------------------------------------
1 | FROM node:lts
2 |
3 | RUN npm i -g prettier
4 |
5 | CMD prettier -w /local '!local/coverage'
6 |
--------------------------------------------------------------------------------
/examples/test_spec/twilio_nestedmodel_v1.yaml:
--------------------------------------------------------------------------------
1 | # This spec tests followings
2 | # 1. Nested model in request body and component schema
--------------------------------------------------------------------------------
/specs_test/test_spec/twilio_nestedmodel_v1.yaml:
--------------------------------------------------------------------------------
1 | # This spec tests followings
2 | # 1. Nested model in request body and component schema
--------------------------------------------------------------------------------
/examples/python/setup.cfg:
--------------------------------------------------------------------------------
1 | [coverage:run]
2 | relative_files = True
3 |
4 | [tool:pytest]
5 | addopts = --cov=twilio/rest/ --cov-report xml
6 |
--------------------------------------------------------------------------------
/examples/ruby/lib/twilio-ruby/rest/oauth.rb:
--------------------------------------------------------------------------------
1 | module Twilio
2 | module REST
3 | class Oauth < OauthBase
4 | end
5 | end
6 | end
7 |
--------------------------------------------------------------------------------
/examples/test_spec/twilio_response_v1.yaml:
--------------------------------------------------------------------------------
1 | # This spec tests followings
2 | # 1. All types of response body(json)
3 | # 2. Tests paginated response.
--------------------------------------------------------------------------------
/src/main/resources/twilio-ruby/params.mustache:
--------------------------------------------------------------------------------
1 | {{paramName}}: {{#required}}nil{{/required}}{{^required}}:unset{{/required}}{{^-last}}, {{/-last}}
--------------------------------------------------------------------------------
/specs_test/test_spec/twilio_response_v1.yaml:
--------------------------------------------------------------------------------
1 | # This spec tests followings
2 | # 1. All types of response body(json)
3 | # 2. Tests paginated response.
--------------------------------------------------------------------------------
/src/main/resources/twilio-csharp/resource/ReturnCommentsAsync.mustache:
--------------------------------------------------------------------------------
1 | /// Task that resolves to A single instance of {{apiName}}
--------------------------------------------------------------------------------
/src/main/resources/twilio-java-legacy/packageName.mustache:
--------------------------------------------------------------------------------
1 | package com.twilio.rest.{{#lambda.lowercase}}{{domain}}.{{apiVersion}}{{/lambda.lowercase}};
2 |
--------------------------------------------------------------------------------
/src/main/resources/twilio-csharp/Summary.mustache:
--------------------------------------------------------------------------------
1 | {{#vendorExtensions.x-generate-comment}}
2 | /// {{{.}}} {{/vendorExtensions.x-generate-comment}}
--------------------------------------------------------------------------------
/examples/go/Dockerfile-goimports:
--------------------------------------------------------------------------------
1 | FROM golang:1.18
2 |
3 | ENV GOPATH /go
4 | RUN go install golang.org/x/tools/cmd/goimports@v0.24.0
5 |
6 | CMD goimports -w /local
7 |
--------------------------------------------------------------------------------
/src/main/java/com/twilio/oai/common/LanguageDataType.java:
--------------------------------------------------------------------------------
1 | package com.twilio.oai.common;
2 |
3 | public interface LanguageDataType {
4 | String getValue();
5 | }
6 |
--------------------------------------------------------------------------------
/examples/csharp/sonar-project.properties:
--------------------------------------------------------------------------------
1 | sonar.projectKey=twilio_twilio-oai-generator-csharp
2 | sonar.projectName=twilio-oai-generator-csharp
3 | sonar.organization=twilio
4 |
--------------------------------------------------------------------------------
/examples/python/Dockerfile-prettier:
--------------------------------------------------------------------------------
1 | FROM python:3.7
2 |
3 | RUN pip install autoflake black
4 |
5 | CMD autoflake --remove-all-unused-imports -i -r /local && black /local
6 |
--------------------------------------------------------------------------------
/examples/ruby/Dockerfile-formatter:
--------------------------------------------------------------------------------
1 | FROM ruby:3.0
2 |
3 | WORKDIR /local
4 | RUN gem install 'rubocop'
5 |
6 | CMD rubocop --fix-layout 2>&1 | tee /local/formatter-report.out
7 |
--------------------------------------------------------------------------------
/examples/go/go-client/helper/README.md:
--------------------------------------------------------------------------------
1 | Command to generate the mock client:
2 |
3 | ```sh
4 | mockgen -source=client/test_client.go -destination=client/mock_client.go -package=client
5 | ```
6 |
--------------------------------------------------------------------------------
/examples/test_spec/java/twilio_customfeature_v1.yaml:
--------------------------------------------------------------------------------
1 | # This spec is twilio-java specific and Tests following
2 | # 1. It tests custom feature for twilio-java examples: constructors, DateInequality
--------------------------------------------------------------------------------
/specs_test/test_spec/java/twilio_customfeature_v1.yaml:
--------------------------------------------------------------------------------
1 | # This spec is twilio-java specific and Tests following
2 | # 1. It tests custom feature for twilio-java examples: constructors, DateInequality
--------------------------------------------------------------------------------
/src/main/resources/META-INF/services/org.openapitools.codegen.api.TemplatingEngineAdapter:
--------------------------------------------------------------------------------
1 | org.openapitools.codegen.templating.MustacheEngineAdapter
2 | com.twilio.oai.templating.TwilioHandlebarsEngineAdapter
3 |
--------------------------------------------------------------------------------
/examples/ruby/lib/twilio-ruby/rest/api.rb:
--------------------------------------------------------------------------------
1 | module Twilio
2 | module REST
3 | class Api < ApiBase
4 | def v2010
5 | @v2010 ||= V2010.new self
6 | end
7 | end
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/src/main/java/com/twilio/oai/template/IApiActionTemplate.java:
--------------------------------------------------------------------------------
1 | package com.twilio.oai.template;
2 |
3 | public interface IApiActionTemplate {
4 | void clean();
5 | void add(String template);
6 | void addSupportVersion();
7 | }
8 |
--------------------------------------------------------------------------------
/src/main/resources/config/toggles.json:
--------------------------------------------------------------------------------
1 | {
2 | "json_ingress": {
3 | "twilio-java-legacy": true,
4 | "twilio-node": true,
5 | "twilio-python": true,
6 | "twilio-ruby": true,
7 | "twilio-php": true
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/java/com/twilio/oai/java/processor/PaginationStrategy.java:
--------------------------------------------------------------------------------
1 | package com.twilio.oai.java.processor;
2 |
3 | /*
4 | There are 2 types pagination strategies are supported nextPrev and direct.
5 | */
6 | public interface PaginationStrategy {
7 | }
8 |
--------------------------------------------------------------------------------
/src/main/resources/twilio-python/model.handlebars:
--------------------------------------------------------------------------------
1 | {{#models}}{{#isEnum}}
2 | class {{name}}(object):{{#allowableValues}}{{#values}}
3 | {{{upper (snake_case (lower this))}}} = "{{{.}}}"{{/values}}{{/allowableValues}}
4 | {{/isEnum}}{{/models}}
--------------------------------------------------------------------------------
/examples/node/sonar-project.properties:
--------------------------------------------------------------------------------
1 | sonar.projectKey=twilio_twilio-oai-generator-node
2 | sonar.projectName=twilio-oai-generator-node
3 | sonar.organization=twilio
4 | sonar.exclusions=**/*spec.ts
5 | sonar.javascript.lcov.reportPaths=coverage/lcov.info
6 |
--------------------------------------------------------------------------------
/examples/ruby/lib/twilio-ruby/rest/flex_api.rb:
--------------------------------------------------------------------------------
1 | require 'twilio-ruby/rest'
2 |
3 | module Twilio
4 | module REST
5 | class FlexApi < FlexApiBase
6 | def v1
7 | @v1 ||= V1.new self
8 | end
9 | end
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/examples/ruby/sonar-project.properties:
--------------------------------------------------------------------------------
1 | sonar.projectKey=twilio_twilio-oai-generator-ruby
2 | sonar.organization=twilio
3 | sonar.projectName=twilio-oai-generator-ruby
4 | sonar.ruby.coverage.reportPaths=coverage/coverage.json
5 | sonar.exclusions=**/*spec.rb
6 |
--------------------------------------------------------------------------------
/examples/java/sonar-project.properties:
--------------------------------------------------------------------------------
1 | sonar.projectKey=twilio_twilio-oai-generator-java
2 | sonar.projectName=twilio-oai-generator-java
3 | sonar.organization=twilio
4 | sonar.exclusions=**/*Test*.java,**/messaging/*/*.java
5 | sonar.java.binaries=target/classes
6 |
--------------------------------------------------------------------------------
/src/main/java/com/twilio/oai/resolver/DataSanitizer.java:
--------------------------------------------------------------------------------
1 | package com.twilio.oai.resolver;
2 |
3 | import org.openapitools.codegen.IJsonSchemaValidationProperties;
4 |
5 | public interface DataSanitizer {
6 | void sanitize(T data);
7 | }
8 |
--------------------------------------------------------------------------------
/examples/test_spec/twilio_auth_v1.yaml:
--------------------------------------------------------------------------------
1 | components:
2 | securitySchemes:
3 | oAuth2ClientCredentials:
4 | type: oauth2
5 | flows:
6 | clientCredentials:
7 | tokenUrl: https://preview-iam.twilio.com/v1/token
8 | scopes: {}
9 | paths:
10 |
--------------------------------------------------------------------------------
/specs_test/test_spec/twilio_auth_v1.yaml:
--------------------------------------------------------------------------------
1 | components:
2 | securitySchemes:
3 | oAuth2ClientCredentials:
4 | type: oauth2
5 | flows:
6 | clientCredentials:
7 | tokenUrl: https://preview-iam.twilio.com/v1/token
8 | scopes: {}
9 | paths:
10 |
--------------------------------------------------------------------------------
/src/main/resources/twilio-csharp/options/MethodsComments.mustache:
--------------------------------------------------------------------------------
1 | /// Construct a new {{operationId}}Options
2 | {{#requiredParams}}
3 | /// {{{description}}}
4 | {{/requiredParams}}
--------------------------------------------------------------------------------
/src/main/java/com/twilio/oai/resolver/CaseResolver.java:
--------------------------------------------------------------------------------
1 | package com.twilio.oai.resolver;
2 |
3 | public interface CaseResolver {
4 | String productOperation(String product);
5 |
6 | String pathOperation(String pathPart);
7 |
8 | String filenameOperation(String filename);
9 | }
10 |
--------------------------------------------------------------------------------
/examples/go/sonar-project.properties:
--------------------------------------------------------------------------------
1 | sonar.projectKey=twilio_twilio-oai-generator-go
2 | sonar.projectName=twilio-oai-generator-go
3 | sonar.organization=twilio
4 | sonar.exclusions=**/*_test.go,**/mock_client.go
5 | sonar.go.tests.reportPaths=test-report.out
6 | sonar.go.coverage.reportPaths=coverage.out
7 |
--------------------------------------------------------------------------------
/src/main/java/com/twilio/oai/java/format/Promotion.java:
--------------------------------------------------------------------------------
1 | package com.twilio.oai.java.format;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 |
6 | @AllArgsConstructor
7 | public class Promotion {
8 | @Getter
9 | String inputType;
10 | @Getter
11 | String promoter;
12 | }
13 |
--------------------------------------------------------------------------------
/examples/ruby/lib/twilio-ruby/rest/preview_iam.rb:
--------------------------------------------------------------------------------
1 | module Twilio
2 | module REST
3 | class PreviewIam < PreviewIamBase
4 | def organizations(organization_sid = nil)
5 | @organizations ||= PreviewIam::Versionless.new(self).organization(organization_sid)
6 | end
7 | end
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | *.jar
3 | codegen/
4 | target/
5 | __pycache__
6 | tmp
7 |
8 | **/.openapi-generator*
9 | **/docs
10 | **/*.bak
11 |
12 | **/coverage*
13 | **/*-report.out
14 | **/lcov.net451.opencover.xml
15 |
16 | **/execution-result.xml
17 | **/php_coverage.xml
18 | *.iml
19 | generateFiles.py
20 | temp_specs/
21 |
--------------------------------------------------------------------------------
/examples/python/sonar-project.properties:
--------------------------------------------------------------------------------
1 | sonar.projectKey=twilio_twilio-oai-generator-python
2 | sonar.projectName=twilio-oai-generator-python
3 | sonar.organization=twilio
4 | sonar.exclusions=**/*_test.py
5 | sonar.python.tests.reportPaths=test-report.out
6 | sonar.python.coverage.reportPaths=coverage.xml
7 | sonar.python.version=3
8 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | .PHONY: install test generate test-docker
2 |
3 | install:
4 | mvn clean package -DskipTests
5 |
6 | test:
7 | mvn clean test
8 |
9 | generate: install
10 | bash scripts/generate.sh
11 |
12 | # for specific language use LANGUAGES for ex: make test-docker LANGUAGES=node
13 | test-docker: generate
14 | bash scripts/prism.sh
15 |
--------------------------------------------------------------------------------
/src/main/java/com/twilio/oai/java/processor/enums/EnumProcessor.java:
--------------------------------------------------------------------------------
1 | package com.twilio.oai.java.processor.enums;
2 |
3 | import com.twilio.oai.common.EnumConstants.OpenApiEnumType;
4 |
5 | public interface EnumProcessor {
6 | boolean shouldProcess(T schema);
7 | void process(T schema);
8 | OpenApiEnumType getType();
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/java/com/twilio/oai/java/processor/enums/property/PropertyEnumProcessor.java:
--------------------------------------------------------------------------------
1 | package com.twilio.oai.java.processor.enums.property;
2 |
3 | import com.twilio.oai.java.processor.enums.EnumProcessor;
4 | import org.openapitools.codegen.CodegenProperty;
5 |
6 | public interface PropertyEnumProcessor extends EnumProcessor {
7 | }
8 |
--------------------------------------------------------------------------------
/examples/node/src/rest/ApiBase.ts:
--------------------------------------------------------------------------------
1 | import Domain from "../base/Domain";
2 | import V2010 from "./api/V2010";
3 |
4 | class ApiBase extends Domain {
5 | constructor(twilio: any) {
6 | super(twilio, "http://api.twilio.com");
7 | }
8 |
9 | get v2010(): V2010 {
10 | return new V2010(this);
11 | }
12 | }
13 |
14 | export = ApiBase;
15 |
--------------------------------------------------------------------------------
/examples/node/src/rest/FlexApiBase.ts:
--------------------------------------------------------------------------------
1 | import Domain from "../base/Domain";
2 | import V1 from "./flexApi/V1";
3 |
4 | class FlexApiBase extends Domain {
5 | constructor(twilio: any) {
6 | super(twilio, "http://flex-api.twilio.com");
7 | }
8 |
9 | get v1(): V1 {
10 | return new V1(this);
11 | }
12 | }
13 |
14 | export = FlexApiBase;
15 |
--------------------------------------------------------------------------------
/src/main/java/com/twilio/oai/java/processor/enums/parameter/ParameterEnumProcessor.java:
--------------------------------------------------------------------------------
1 | package com.twilio.oai.java.processor.enums.parameter;
2 |
3 | import com.twilio.oai.java.processor.enums.EnumProcessor;
4 | import org.openapitools.codegen.CodegenParameter;
5 |
6 | public interface ParameterEnumProcessor extends EnumProcessor {
7 | }
8 |
--------------------------------------------------------------------------------
/examples/csharp/test.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -e
3 |
4 | sleep 10
5 |
6 | if [ "$SONAR_TOKEN" = "" ]; then
7 | make test
8 | else
9 | make cover PROJECT_NAME=twilio_twilio-oai-generator-csharp \
10 | SONAR_SOURCES="/d:sonar.inclusions=src/Twilio/Rest/**/* /d:sonar.cs.analyzeGeneratedCode=true /d:sonar.exclusions=test/Twilio.Test/**/*"
11 | fi
--------------------------------------------------------------------------------
/src/main/resources/twilio-java/common/constructors.mustache:
--------------------------------------------------------------------------------
1 | {{#vendorExtensions.x-signature-list}}
2 | public {{resourceName}}{{vendorExtensions.x-common-action-type}}({{#.}}final {{{dataType}}} {{paramName}}{{^-last}}, {{/-last}}{{/.}}) {
3 | {{#.}}
4 | this.{{paramName}} = {{paramName}};
5 | {{/.}}
6 | }
7 | {{/vendorExtensions.x-signature-list}}
--------------------------------------------------------------------------------
/src/main/resources/twilio-csharp/OptionsUsings.mustache:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using Twilio.Base;
4 | using Twilio.Converters;
5 | {{#metaProperties}}{{#array-exists-options}}using System.Linq;{{/array-exists-options}}{{/metaProperties}}
6 | {{#metaProperties}}{{#enum-exists-options}}using Twilio.Types;{{/enum-exists-options}}{{/metaProperties}}
--------------------------------------------------------------------------------
/src/main/java/com/twilio/oai/java/feature/datamodels/DataModel.java:
--------------------------------------------------------------------------------
1 | package com.twilio.oai.java.feature.datamodels;
2 |
3 | import org.openapitools.codegen.CodegenModel;
4 | import org.openapitools.codegen.CodegenOperation;
5 |
6 | public interface DataModel {
7 | void apply(CodegenOperation codegenOperation);
8 | boolean shouldApply(CodegenModel codegenModel);
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/resources/twilio-java/common/addPostParamsJson.mustache:
--------------------------------------------------------------------------------
1 | private void addPostParams(final Request request, TwilioRestClient client) {
2 | ObjectMapper objectMapper = client.getObjectMapper();
3 | {{#bodyParams}}
4 | if ({{paramName}} != null) {
5 | request.setBody({{resourceName}}.toJson({{paramName}}, objectMapper));
6 | }
7 | {{/bodyParams}}
8 | }
--------------------------------------------------------------------------------
/examples/ruby/lib/twilio-ruby/rest/versionless.rb:
--------------------------------------------------------------------------------
1 | require 'twilio-ruby/rest'
2 |
3 | module Twilio
4 | module REST
5 | class Versionless < VersionlessBase
6 | def deployed_devices
7 | @deployed_devices ||= DeployedDevices.new self
8 | end
9 |
10 | def understand
11 | @understand ||= Understand.new self
12 | end
13 | end
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/src/main/java/com/twilio/oai/java/processor/responsebody/ResponseProcessor.java:
--------------------------------------------------------------------------------
1 | package com.twilio.oai.java.processor.responsebody;
2 |
3 | import org.openapitools.codegen.CodegenOperation;
4 |
5 | public interface ResponseProcessor {
6 | void process(CodegenOperation codegenOperation);
7 | String getContentType();
8 | boolean shouldProcess(CodegenOperation codegenOperation);
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/java/com/twilio/oai/resolver/java/JavaIngressResolver.java:
--------------------------------------------------------------------------------
1 | package com.twilio.oai.resolver.java;
2 |
3 | import org.openapitools.codegen.CodegenModel;
4 |
5 | import java.util.List;
6 |
7 | public class JavaIngressResolver {
8 | public JavaIngressResolver(List allModels) {
9 |
10 | }
11 |
12 | void resolve() {
13 |
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/resources/twilio-csharp/ResourceUsings.mustache:
--------------------------------------------------------------------------------
1 | using Newtonsoft.Json;
2 | using System;
3 | using System.Collections.Generic;
4 | using Twilio.Base;
5 | using Twilio.Clients;
6 | using Twilio.Constant;
7 | using Twilio.Converters;
8 | using Twilio.Exceptions;
9 | using Twilio.Http;
10 | {{#metaProperties}}{{#enum-exists-resource}}using Twilio.Types;{{/enum-exists-resource}}{{/metaProperties}}
--------------------------------------------------------------------------------
/src/main/java/com/twilio/oai/java/processor/requestbody/RequestBodyProcessor.java:
--------------------------------------------------------------------------------
1 | package com.twilio.oai.java.processor.requestbody;
2 |
3 | import org.openapitools.codegen.CodegenOperation;
4 |
5 | public interface RequestBodyProcessor {
6 | void process(CodegenOperation codegenOperation);
7 | String getContentType();
8 | boolean shouldProcess(CodegenOperation codegenOperation);
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/resources/twilio-go/model.mustache:
--------------------------------------------------------------------------------
1 | {{>partial_header}}
2 | package {{packageName}}
3 | {{#models}}
4 | import (
5 | "encoding/json"
6 | "github.com/twilio/twilio-go/client"
7 | {{#imports}}
8 | "{{import}}"
9 | {{/imports}}
10 | )
11 | {{#model}}
12 | {{#isEnum}}
13 | {{>model_enum}}
14 | {{/isEnum}}
15 | {{^isEnum}}
16 | {{>model_simple}}
17 | {{/isEnum}}
18 | {{/model}}
19 | {{/models}}
20 |
--------------------------------------------------------------------------------
/src/main/resources/twilio-php/models/modelMethod.mustache:
--------------------------------------------------------------------------------
1 | /**
2 | {{#vars}}
3 | * @property {{{dataType}}} ${{#lambda.camelcase}}{{baseName}}{{/lambda.camelcase}}{{#description}} {{{description}}}{{/description}}
4 | {{/vars}}
5 | */
6 | public static function create{{classname}}(array $payload = []): {{classname}}
7 | {
8 | return new {{classname}}($payload);
9 | }
10 |
--------------------------------------------------------------------------------
/examples/php/sonar-project.properties:
--------------------------------------------------------------------------------
1 | sonar.projectKey=twilio_twilio-oai-generator-php
2 | sonar.projectName=twilio-oai-generator-php
3 | sonar.organization=twilio
4 | sonar.sources=src
5 | sonar.tests=tests
6 | sonar.inclusions=**/*List.php,**/*Instance.php,**/*Context.php
7 | sonar.coverage.exclusions=tests
8 | sonar.php.coverage.reportPaths=php_coverage.xml
9 | sonar.php.tests.reportPath=execution-result.xml
10 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | contact_links:
2 | - name: Twilio Support
3 | url: https://twilio.com/help/contact
4 | about: Get Support
5 | - name: Stack Overflow
6 | url: https://stackoverflow.com/questions/tagged/twilio-oai
7 | about: Ask questions on Stack Overflow
8 | - name: Documentation
9 | url: https://www.twilio.com/docs
10 | about: View Reference Documentation
11 |
12 |
--------------------------------------------------------------------------------
/src/main/resources/twilio-php/models.mustache:
--------------------------------------------------------------------------------
1 | {{#resources}}
2 | licenseInfo}}
4 | namespace Twilio\Rest\{{domainName}}\{{version}}{{namespaceSubPart}};
5 |
6 | use Twilio\Values;
7 | abstract class {{apiName}}Models
8 | {
9 | {{#nestedModels}}
10 | {{>models/modelMethod}}
11 | {{/nestedModels}}
12 | }
13 |
14 | {{#nestedModels}}
15 | {{>models/modelClass}}
16 | {{/nestedModels}}
17 | {{/resources}}
18 |
--------------------------------------------------------------------------------
/src/main/resources/twilio-java-legacy/prefixedCollapsibleMapQParams.mustache:
--------------------------------------------------------------------------------
1 | if ({{paramName}} != null) {
2 | Map params = PrefixedCollapsibleMap.serialize({{{paramName}}}, "{{vendorExtensions.x-prefixed-collapsible-map}}");
3 | for (Map.Entry entry : params.entrySet()) {
4 | request.addQueryParam(entry.getKey(), entry.getValue());
5 | }
6 | }
--------------------------------------------------------------------------------
/src/main/resources/twilio-php/options.mustache:
--------------------------------------------------------------------------------
1 | {{#resources}}
2 | licenseInfo}}
4 | namespace Twilio\Rest\{{domainName}}\{{version}}{{namespaceSubPart}};
5 |
6 | {{>imports}}
7 | abstract class {{apiName}}Options
8 | {
9 | {{#apiOperations}}
10 | {{>options/optionMethod}}
11 | {{/apiOperations}}
12 | }
13 |
14 | {{#apiOperations}}
15 | {{>options/optionsClass}}
16 | {{/apiOperations}}
17 | {{/resources}}
18 |
--------------------------------------------------------------------------------
/src/main/java/com/twilio/oai/resolver/IConventionMapper.java:
--------------------------------------------------------------------------------
1 | package com.twilio.oai.resolver;
2 |
3 | public interface IConventionMapper {
4 | ConfigurationSegment properties();
5 |
6 | ConfigurationSegment serialize();
7 |
8 | ConfigurationSegment deserialize();
9 |
10 | ConfigurationSegment libraries();
11 |
12 | ConfigurationSegment hydrate();
13 |
14 | ConfigurationSegment promotions();
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/resources/META-INF/services/org.openapitools.codegen.CodegenConfig:
--------------------------------------------------------------------------------
1 | com.twilio.oai.TwilioCsharpGenerator
2 | com.twilio.oai.TwilioGoGenerator
3 | com.twilio.oai.TwilioJavaGenerator
4 | com.twilio.oai.TwilioJavaGeneratorModern
5 | com.twilio.oai.TwilioNodeGenerator
6 | com.twilio.oai.TwilioPhpGenerator
7 | com.twilio.oai.TwilioRubyGenerator
8 | com.twilio.oai.TwilioTerraformGenerator
9 | com.twilio.oai.TwilioPythonGenerator
10 |
--------------------------------------------------------------------------------
/examples/node/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM node:lts
2 |
3 | WORKDIR /app
4 | RUN git clone https://github.com/twilio/twilio-node.git
5 | WORKDIR /app/twilio-node/
6 |
7 | RUN rm -rf src/rest/ spec/
8 |
9 | COPY src src
10 | COPY spec spec
11 |
12 | # pipefail prevents errors in a pipeline from being masked.
13 | CMD ["/bin/bash", "-c", "set -o pipefail && sleep 10 && make install test 2>&1 | tee /local/test-report.out && cp -r coverage /local"]
14 |
--------------------------------------------------------------------------------
/src/main/java/com/twilio/oai/java/processor/model/ModelProcessor.java:
--------------------------------------------------------------------------------
1 | package com.twilio.oai.java.processor.model;
2 |
3 | import org.openapitools.codegen.CodegenModel;
4 | import org.openapitools.codegen.CodegenProperty;
5 |
6 | public interface ModelProcessor {
7 | boolean shouldProcess(CodegenProperty codegenProperty, CodegenModel codegenModel);
8 | void process(CodegenProperty codegenProperty, CodegenModel codegenModel);
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/resources/twilio-csharp/options/Params.mustache:
--------------------------------------------------------------------------------
1 |
2 | {{#requiredParams}}
3 | {{#description}}/// {{{description}}} {{/description}}
4 | public {{{dataType}}} {{paramName}} { get; }
5 |
6 | {{/requiredParams}}
7 | {{#optionalParams}}
8 | {{#description}}/// {{{description}}} {{/description}}
9 | public {{{dataType}}} {{paramName}} { get; set; }
10 |
11 | {{/optionalParams}}
12 |
--------------------------------------------------------------------------------
/src/main/java/com/twilio/oai/java/processor/model/parameter/ModelProcessor.java:
--------------------------------------------------------------------------------
1 | package com.twilio.oai.java.processor.model.parameter;
2 |
3 | import org.openapitools.codegen.CodegenModel;
4 | import org.openapitools.codegen.CodegenParameter;
5 |
6 | public interface ModelProcessor {
7 | boolean shouldProcess(CodegenParameter codegenParameter, CodegenModel codegenModel);
8 | void process(CodegenParameter codegenParameter, CodegenModel codegenModel);
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/resources/twilio-ruby/parentContext.mustache:
--------------------------------------------------------------------------------
1 | {{#parentDir}}
2 | class {{0}} < {{1}}
3 | {{/parentDir}}
4 |
5 | {{>list}}
6 | {{#metaProperties.hasInstanceOperation}}
7 | {{>context}}
8 | {{/metaProperties.hasInstanceOperation}}
9 | {{>page}}
10 | {{>instance}}
11 | {{#parentDir}}
12 | end
13 | {{/parentDir}}
14 | end
15 | end
16 | end
17 | end
18 |
19 |
--------------------------------------------------------------------------------
/examples/go/go-client/go.mod:
--------------------------------------------------------------------------------
1 | module go-client
2 |
3 | go 1.21
4 |
5 | require (
6 | github.com/golang/mock v1.6.0
7 | github.com/stretchr/testify v1.7.0
8 | github.com/twilio/twilio-go v0.25.0
9 | )
10 |
11 | require (
12 | github.com/davecgh/go-spew v1.1.1 // indirect
13 | github.com/pkg/errors v0.9.1 // indirect
14 | github.com/pmezard/go-difflib v1.0.0 // indirect
15 | gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
16 | gopkg.in/yaml.v3 v3.0.1 // indirect
17 | )
18 |
--------------------------------------------------------------------------------
/src/main/resources/twilio-java/common/instanceVariables.mustache:
--------------------------------------------------------------------------------
1 | {{#pathParams}}
2 | private {{{dataType}}} {{paramName}};
3 | {{/pathParams}}
4 | {{#queryParams}}
5 | private {{{dataType}}} {{paramName}};
6 | {{/queryParams}}
7 | {{#headerParams}}
8 | private {{{dataType}}} {{paramName}};
9 | {{/headerParams}}
10 | {{#formParams}}
11 | private {{{dataType}}} {{paramName}};
12 | {{/formParams}}
13 | {{#bodyParams}}
14 | private {{{dataType}}} {{paramName}};
15 | {{/bodyParams}}
--------------------------------------------------------------------------------
/src/main/resources/twilio-java-legacy/postParams_body.mustache:
--------------------------------------------------------------------------------
1 | private void addPostParams(final {{vendorExtensions.x-auth-attributes.x-http-class-prefix}}Request request, {{vendorExtensions.x-auth-attributes.x-http-class-prefix}}TwilioRestClient client) {
2 | ObjectMapper objectMapper = client.getObjectMapper();
3 | {{#bodyParams}}
4 | if ({{paramName}} != null) {
5 | request.setBody({{apiName}}.toJson({{paramName}}, objectMapper));
6 | }
7 | {{/bodyParams}}
8 | }
--------------------------------------------------------------------------------
/examples/java/src/main/java/com/twilio/Domains.java:
--------------------------------------------------------------------------------
1 | package com.twilio.rest;
2 |
3 | public enum Domains {
4 | API("api"),
5 | FLEXAPI("flex-api"),
6 | VERSIONLESS("versionless"),
7 | MESSAGING("messaging"),
8 | PREVIEWIAM("preview-iam"),
9 | OAUTH("oauth");
10 |
11 | private final String value;
12 |
13 | private Domains(final String value) {
14 | this.value = value;
15 | }
16 |
17 | public String toString() {
18 | return value;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/com/twilio/oai/templating/handlebars/TwilioHelpers.java:
--------------------------------------------------------------------------------
1 | package com.twilio.oai.templating.handlebars;
2 |
3 | import com.twilio.oai.StringHelper;
4 |
5 | import com.github.jknack.handlebars.Helper;
6 | import com.github.jknack.handlebars.Options;
7 |
8 | public enum TwilioHelpers implements Helper