Skip to content

Add support for the .slack_api connector #419

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Sep 8, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,8 @@ jobs:
- '8.5.3'
- '8.6.2'
- '8.7.0'
- '8.8.2'
- '8.9.2'
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v4
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
## [Unreleased]

### Added
- Add support for the `.slack_api` connector type for Kibana action connectors ([#419](https://github.com/elastic/terraform-provider-elasticstack/pull/419))

## [0.7.0] - 2023-08-22

Expand Down
8 changes: 8 additions & 0 deletions docs/resources/kibana_action_connector.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,14 @@ resource "elasticstack_kibana_action_connector" "slack-connector" {
webhookUrl = "<your-webhookUrl>"
})
}

resource "elasticstack_kibana_action_connector" "slack-api-connector" {
name = "slack"
connector_type_id = ".slack_api"
secrets = jsonencode({
token = "<your-token>"
})
}
```

<!-- schema generated by tfplugindocs -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,11 @@ resource "elasticstack_kibana_action_connector" "slack-connector" {
webhookUrl = "<your-webhookUrl>"
})
}

resource "elasticstack_kibana_action_connector" "slack-api-connector" {
name = "slack"
connector_type_id = ".slack_api"
secrets = jsonencode({
token = "<your-token>"
})
}
4 changes: 4 additions & 0 deletions generated/connectors/README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
[OpenAPI specs](./bundled.yaml) is copied from [Kibana repo](https://raw.githubusercontent.com/elastic/kibana/8.7/x-pack/plugins/actions/docs/openapi/bundled.yaml) with some modifications:

- `.slack_api` connector support comes from version 8.8 of the API specification;
- added `.slack_api` as a possible value for `connector_types`;
- added mapping section for discriminator field in `POST` `/s/{spaceId}/api/actions/connector`;
- added explicit object definitions for `400`, `401` and `404` errors (`oapi-codegen` doesn't generate proper code for embedded anonymous objects in some cases) - `bad_request_error`, `authorization_error` and `object_not_found_error`;
- added missing `oneOf` types in `requestBody` for `PUT` `/s/{spaceId}/api/actions/connector/{connectorId}` - the original `bundled.yaml` misses some connector types in the `PUT` `requestBody` defintion:
- `update_connector_request_email`;
- `update_connector_request_pagerduty`;
- `update_connector_request_servicenow_sir`;
- `update_connector_request_slack`;
- `update_connector_request_slack_api`;
- `update_connector_request_teams`;
- `update_connector_request_tines`;
- `update_connector_request_webhook`;
Expand All @@ -31,6 +34,7 @@
- `connector_response_properties_servicenow_itom`;
- `connector_response_properties_servicenow_sir`;
- `connector_response_properties_slack`;
- `connector_response_properties_slack_api`;
- `connector_response_properties_swimlane`;
- `connector_response_properties_teams`;
- `connector_response_properties_tines`;
Expand Down
75 changes: 75 additions & 0 deletions generated/connectors/bundled.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ paths:
- $ref: '#/components/schemas/create_connector_request_servicenow_itom'
- $ref: '#/components/schemas/create_connector_request_servicenow_sir'
- $ref: '#/components/schemas/create_connector_request_slack'
- $ref: '#/components/schemas/create_connector_request_slack_api'
- $ref: '#/components/schemas/create_connector_request_swimlane'
- $ref: '#/components/schemas/create_connector_request_teams'
- $ref: '#/components/schemas/create_connector_request_tines'
Expand All @@ -66,6 +67,7 @@ paths:
.servicenow-itom: '#/components/schemas/create_connector_request_servicenow_itom'
.servicenow-sir: '#/components/schemas/create_connector_request_servicenow_sir'
.slack: '#/components/schemas/create_connector_request_slack'
.slack_api: '#/components/schemas/create_connector_request_slack_api'
.swimlane: '#/components/schemas/create_connector_request_swimlane'
.teams: '#/components/schemas/create_connector_request_teams'
.tines: '#/components/schemas/create_connector_request_tines'
Expand Down Expand Up @@ -214,6 +216,7 @@ paths:
- $ref: '#/components/schemas/update_connector_request_servicenow_itom'
- $ref: '#/components/schemas/update_connector_request_servicenow_sir'
- $ref: '#/components/schemas/update_connector_request_slack'
- $ref: '#/components/schemas/update_connector_request_slack_api'
- $ref: '#/components/schemas/update_connector_request_swimlane'
- $ref: '#/components/schemas/update_connector_request_teams'
- $ref: '#/components/schemas/update_connector_request_tines'
Expand Down Expand Up @@ -1398,6 +1401,37 @@ components:
example: my-connector
secrets:
$ref: '#/components/schemas/secrets_properties_slack'
secrets_properties_slack_api:
title: Connector secrets properties for a Web API Slack connector
description: Defines secrets for connectors when type is `.slack`.
required:
- token
type: object
properties:
token:
type: string
description: Slack bot user OAuth token.
create_connector_request_slack_api:
title: Create Slack connector request
description: The Slack connector uses Slack Incoming Webhooks.
type: object
required:
- connector_type_id
- name
- secrets
properties:
connector_type_id:
type: string
description: The type of connector.
enum:
- .slack_api
example: .slack_api
name:
type: string
description: The display name for the connector.
example: my-connector
secrets:
$ref: '#/components/schemas/secrets_properties_slack_api'
config_properties_swimlane:
title: Connector request properties for a Swimlane connector
required:
Expand Down Expand Up @@ -2129,6 +2163,32 @@ components:
name:
type: string
description: The display name for the connector.
connector_response_properties_slack_api:
title: Connector response properties for a Slack connector
type: object
required:
- connector_type_id
- id
- is_preconfigured
- name
properties:
connector_type_id:
type: string
description: The type of connector.
enum:
- .slack_api
id:
type: string
description: The identifier for the connector.
is_deprecated:
$ref: '#/components/schemas/is_deprecated'
is_missing_secrets:
$ref: '#/components/schemas/is_missing_secrets'
is_preconfigured:
$ref: '#/components/schemas/is_preconfigured'
name:
type: string
description: The display name for the connector.
connector_response_properties_swimlane:
title: Connector response properties for a Swimlane connector
type: object
Expand Down Expand Up @@ -2287,6 +2347,7 @@ components:
- $ref: '#/components/schemas/connector_response_properties_servicenow_itom'
- $ref: '#/components/schemas/connector_response_properties_servicenow_sir'
- $ref: '#/components/schemas/connector_response_properties_slack'
- $ref: '#/components/schemas/connector_response_properties_slack_api'
- $ref: '#/components/schemas/connector_response_properties_swimlane'
- $ref: '#/components/schemas/connector_response_properties_teams'
- $ref: '#/components/schemas/connector_response_properties_tines'
Expand All @@ -2307,6 +2368,7 @@ components:
.servicenow-itom: '#/components/schemas/connector_response_properties_servicenow_itom'
.servicenow-sir: '#/components/schemas/connector_response_properties_servicenow_sir'
.slack: '#/components/schemas/connector_response_properties_slack'
.slack_api: '#/components/schemas/connector_response_properties_slack_api'
.swimlane: '#/components/schemas/connector_response_properties_swimlane'
.teams: '#/components/schemas/connector_response_properties_teams'
.tines: '#/components/schemas/connector_response_properties_tines'
Expand Down Expand Up @@ -2489,6 +2551,18 @@ components:
example: my-connector
secrets:
$ref: '#/components/schemas/secrets_properties_slack'
update_connector_request_slack_api:
title: Update Slack connector request
type: object
required:
- name
- secrets
properties:
name:
type: string
description: The display name for the connector.
secrets:
$ref: '#/components/schemas/secrets_properties_slack_api'
update_connector_request_swimlane:
title: Update Swimlane connector request
type: object
Expand Down Expand Up @@ -2590,6 +2664,7 @@ components:
- .servicenow-sir
- .server-log
- .slack
- .slack_api
- .swimlane
- .teams
- .tines
Expand Down
95 changes: 95 additions & 0 deletions generated/connectors/connectors.gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading