ApiGateway API
SaaSus Smart API Gateway API Schema (1.0.0)
SaaSus Smart API Gateway API Schema
Response samples
- 200
- 500
{- "generated_file_status": "finished",
- "internal_endpoint_openapi_definition_file_download_url": "https://presigned-url-test.s3.ap-northeast-1.amazonaws.com/test.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=xxxxxx%2F20230710%2Fap-northeast-1%2Fs3%2Faws4_request",
- "internal_endpoint_mapping_file_download_url": "https://presigned-url-test.s3.ap-northeast-1.amazonaws.com/test.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=xxxxxx%2F20230710%2Fap-northeast-1%2Fs3%2Faws4_request",
- "status": "published",
- "role_arn": "arn:aws:iam::123456789012:role/role-name",
- "role_external_id": 1234567890,
- "internal_endpoint_health_check_path": "/health",
- "internal_endpoint_health_check_port": 80,
- "internal_endpoint_health_check_protocol": "HTTP or HTTPS",
- "internal_endpoint_health_status_codes": 200,
- "saas_subnet_ids": [
- "subnet-1234567890abcdef0",
- "subnet-1234567890abcdef1"
], - "saas_vpc_id": "vpc-12345678",
- "domain_name": "dev.saasus.io",
- "is_dns_validated": false,
- "certificate_dns_record": {
- "type": "CNAME",
- "name": "_k90jaskdfawehro.domain-of-saasus-client.com.",
- "value": "_cmojwc239j102mosd9.acm-validations.aws."
}, - "cloud_front_dns_record": {
- "type": "CNAME",
- "name": "_k90jaskdfawehro.domain-of-saasus-client.com.",
- "value": "_cmojwc239j102mosd9.acm-validations.aws."
}, - "vpc_endpoint_dns_record": {
- "type": "CNAME",
- "name": "_k90jaskdfawehro.domain-of-saasus-client.com.",
- "value": "_cmojwc239j102mosd9.acm-validations.aws."
}, - "default_domain_name": "d78bh0l3saarv.cloudfront.net",
- "saas_alb_arn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188",
- "endpoint_settings_list": [
- {
- "path": "/users/get-by-id",
- "method": "GET",
- "throttling": {
- "target": "tenant",
- "range": 600,
- "limit": 100
}, - "role_names": [
- "admin"
]
}
], - "tenant_routing_type": "path"
}
Smart API Gatewayの設定情報を更新
Smart API Gatewayの設定情報を更新
Authorizations:
Request Body schema: application/jsonrequired
role_arn | string (AssumeRoleするためのロールのARN) SaaSus PlatformがAssumeRoleするためのロールのARN |
role_external_id | string (AssumeRoleする時に使用するExternalID) SaaSus PlatformがSaaSを操作するためにAssumeRoleする時に使用するexternal id |
internal_endpoint_health_check_path | string (インターナルエンドポイントのヘルスチェックパス) インターナルエンドポイントのヘルスチェックに使用するパス |
internal_endpoint_health_check_port | integer (インターナルエンドポイントのヘルスチェックポート) インターナルエンドポイントのヘルスチェックに使用するポート |
internal_endpoint_health_check_protocol | string (インターナルエンドポイントのヘルスチェックプロトコル) インターナルエンドポイントのヘルスチェックに使用するプロトコル |
internal_endpoint_health_status_codes | string (インターナルエンドポイントのヘルスチェックステータスコード) インターナルエンドポイントのヘルスチェックに使用するステータスコード |
saas_subnet_ids | Array of strings (SaaSサブネットID) SaaSのサブネットID |
saas_vpc_id | string (SaaS VPC ID) SaaSのVPC ID |
domain_name | string ドメイン名 |
saas_alb_arn | string (SaaS アプリケーションロードバランサーARN) SaaS アプリケーションロードバランサーARN |
Array of objects (エンドポイント設定一覧) エンドポイント毎の設定一覧 | |
tenant_routing_type | string (テナントルーティングタイプ) Enum: "path" "hostName" "headerValue" "none" テナントルーティングタイプ |
Responses
Request samples
- Payload
{- "role_arn": "arn:aws:iam::123456789012:role/role-name",
- "role_external_id": 1234567890,
- "internal_endpoint_health_check_path": "/health",
- "internal_endpoint_health_check_port": 80,
- "internal_endpoint_health_check_protocol": "HTTP or HTTPS",
- "internal_endpoint_health_status_codes": 200,
- "saas_subnet_ids": [
- "subnet-1234567890abcdef0",
- "subnet-1234567890abcdef1"
], - "saas_vpc_id": "vpc-12345678",
- "domain_name": "dev.saasus.io",
- "saas_alb_arn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188",
- "endpoint_settings_list": [
- {
- "path": "/users/get-by-id",
- "method": "GET",
- "throttling": {
- "target": "tenant",
- "range": 600,
- "limit": 100
}, - "role_names": [
- "admin"
]
}
], - "tenant_routing_type": "path"
}
Response samples
- 500
{- "type": "permission_denied",
- "message": "エラーメッセージ"
}
条件に応じたAPIキー一覧または特定APIキーの取得
クエリパラメータ tenant_id、env_id、user_id の組み合わせにより、取得内容が変わります。 - tenant_id が指定されない場合、全件の一覧が返されます。 - tenant_id のみ指定されると、指定されたテナント内のAPIキー一覧が返されます。 - tenant_id と env_id が指定されると、環境単位でフィルタリングして取得します。 - tenant_id, env_id, user_id の全てが指定される場合は、完全一致検索で対象ユーザーのAPIキーが取得されます。 - また、env_id のみ、user_id のみ指定された場合も検索が可能です。
Authorizations:
query Parameters
tenant_id | string 指定された場合、対象テナントのAPIキーを取得します。 |
env_id | integer 指定された場合、対象環境のAPIキーを取得します。 |
user_id | string 指定された場合、対象ユーザーのAPIキー(最大2件)を取得します。 |
tenant_only | boolean true の場合、User_idが指定されていないAPIキーのみを取得します。 |
Responses
Response samples
- 200
- 500
{- "api_keys": [
- {
- "api_key": "ZDMiIHN0UmVmOmRvY3VtZW50SUQ9Inhtc",
- "tenant_id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "env_id": "1",
- "user_id": "f94bfffc-8be2-11ec-b41a-0242ac120004"
}, - {
- "api_key": "icFS9Hit7jZjeSKMbNZP2cmfqBseyxnJZ",
- "tenant_id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "env_id": "1",
- "user_id": "f94bfffc-8be2-11ec-b41a-0242ac120004"
}
]
}
APIキーを作成します
リクエストボディ内に全てのパラメータ(tenant_id, env_id, user_id(任意))を設定し、新規作成または更新を行います。
Authorizations:
Request Body schema: application/jsonrequired
Payload for API key creation or update.
tenant_id required | string (Uuid) |
env_id required | integer (Id) |
user_id | string (Uuid) |
Responses
Request samples
- Payload
{- "tenant_id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "env_id": 1,
- "user_id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775"
}
Response samples
- 201
- 500
{- "api_key": "1234567890abcdef",
- "tenant_id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "env_id": 1,
- "user_id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775"
}
APIキーを指定して取得
APIキーを指定して、APIキーの詳細を取得します。
Authorizations:
path Parameters
api_key required | string Example: 1234567890abcdef APIキー |
Responses
Response samples
- 200
- 500
{- "api_key": "1234567890abcdef",
- "tenant_id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "env_id": 1,
- "user_id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775"
}
テナントの許可IPアドレスを更新
テナントの許可IPアドレスを更新します。
Authorizations:
path Parameters
tenant_id required | string (Uuid) Example: 69e732d6-8ecc-45c4-c2eb-8438f7ffe775 テナントID |
Request Body schema: application/jsonrequired
allowed_ips required | Array of strings (許可されたIPアドレス一覧) CIDR形式で指定された許可IPアドレス一覧 |
Responses
Request samples
- Payload
{- "allowed_ips": [
- "192.168.0.0/24",
- "172.16.0.0/24"
]
}
Response samples
- 500
{- "type": "permission_denied",
- "message": "エラーメッセージ"
}
テナント情報を更新
テナント情報を更新します。
Authorizations:
path Parameters
tenant_id required | string (Uuid) Example: 69e732d6-8ecc-45c4-c2eb-8438f7ffe775 テナントID |
Request Body schema: application/jsonrequired
object (テナントルーティング) テナントのルーティングに関する情報。 ApiGatewaySettings の tenant_routing_type に対応する情報を参照し、リクエストをルーティングします。 | |||||||||
|
Responses
Request samples
- Payload
{- "routing": {
- "path": "/4c4eefe8-35fd-4e51-8bd4-798e090e439d",
- "header_key": "x-tenant-id",
- "header_value": "4c4eefe8-35fd-4e51-8bd4-798e090e439d",
- "host_name": "tenantid.api.samplesaas.saasus.io"
}
}
Response samples
- 500
{- "type": "permission_denied",
- "message": "エラーメッセージ"
}
テナント情報を取得
テナント情報を取得します。
Authorizations:
path Parameters
tenant_id required | string (Uuid) Example: 69e732d6-8ecc-45c4-c2eb-8438f7ffe775 テナントID |
Responses
Response samples
- 200
- 500
{- "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "routing": {
- "path": "/4c4eefe8-35fd-4e51-8bd4-798e090e439d",
- "header_key": "x-tenant-id",
- "header_value": "4c4eefe8-35fd-4e51-8bd4-798e090e439d",
- "host_name": "tenantid.api.samplesaas.saasus.io"
}
}
API Gatewayを作成するファイルをアップロードします
API Gatewayを作成するファイルをアップロードします
Authorizations:
Request Body schema: application/json
content required | string <base64> (ApiGateway入力ファイルのコンテンツ) API Gatewayを作成するためにアップロードするファイルのコンテンツ |
Responses
Request samples
- Payload
{- "content": "UEsDBBQACAAIAJr6oFQmTAuRfvOGAA=="
}
Response samples
- 500
{- "type": "permission_denied",
- "message": "エラーメッセージ"
}