hashicorp / terraform-provider-aws

The AWS Provider enables Terraform to manage AWS resources.
https://registry.terraform.io/providers/hashicorp/aws
Mozilla Public License 2.0
9.74k stars 9.1k forks source link

Amazon Connect #16392

Closed abebars closed 2 years ago

abebars commented 3 years ago

Community Note

Description

Amazon Connect is omnichannel cloud contact center service that allows building a contact center across voice & chat channels.

New or Affected Resource(s)

Potential Terraform Configuration

resource "aws_connect_insntace" "example" {
  name                     = "example-connect-instance"
  directory_id             = "d-12345678"
  identity_management_type = "self_managed"
  alias                    = "example-alias"
  inbound_call_enabled     = true
  outbound_call_enabled    = true
}

References

Developer Guide.

Requires AWS SDK v1.35.33

thornleyk commented 3 years ago

I am actually building this at the moment, I am wondering if there has been some work on this already as when I was adding the required hooks I saw that connect was already listed in the labels-servcie.tf I don't really want to duplicate effort if this is already underway

abebars commented 3 years ago

I am actually building this at the moment, I am wondering if there has been some work on this already as when I was adding the required hooks I saw that connect was already listed in the labels-servcie.tf I don't really want to duplicate effort if this is already underway

Thanks for the update on that. I am currently working on this as well. I am not aware of any other work under the way for this but I may be mistaken. I should have something ready in the next couple weeks.

thornleyk commented 3 years ago

I am actually building this at the moment, I am wondering if there has been some work on this already as when I was adding the required hooks I saw that connect was already listed in the labels-servcie.tf I don't really want to duplicate effort if this is already underway

Thanks for the update on that. I am currently working on this as well. I am not aware of any other work under the way for this but I may be mistaken. I should have something ready in the next couple weeks.

Need some help?

abebars commented 3 years ago

I am actually building this at the moment, I am wondering if there has been some work on this already as when I was adding the required hooks I saw that connect was already listed in the labels-servcie.tf I don't really want to duplicate effort if this is already underway

Thanks for the update on that. I am currently working on this as well. I am not aware of any other work under the way for this but I may be mistaken. I should have something ready in the next couple weeks.

Need some help?

I can share the branch early with you in the next few days for early checks or we can collaborate together if you have something in mind?

thornleyk commented 3 years ago

I am actually building this at the moment, I am wondering if there has been some work on this already as when I was adding the required hooks I saw that connect was already listed in the labels-servcie.tf I don't really want to duplicate effort if this is already underway

Thanks for the update on that. I am currently working on this as well. I am not aware of any other work under the way for this but I may be mistaken. I should have something ready in the next couple weeks.

Need some help?

I can share the branch early with you in the next few days for early checks or we can collaborate together if you have something in mind?

collaboration would be good, not sure what the scope of the target terraform resources you had in mind but I need to get the complete connect resource graph working with external dependencies. Currently planning:

instance and associated lambda and lex associations contact_flow and the relationships to lex and lambda alias's users and roles

I have the start of the contact flow resource and data source, I only started yesterday, took a while to understand the provider architecture, potentially we can package up the work and eat the elephant bit by bit here is my current branch if your interested https://github.com/thornleyk/terraform-provider-aws/tree/feature/add-connect-assets Its super rough at the moment have been using the lex resource provider as a guide to implementation as it features similar resource relationships

abebars commented 3 years ago

@thornleyk That looks good. I started from the instance and it's config so we are not overlapping so far ๐Ÿ˜…. I was thinking the same about tackling this project piecemeal. So we can have multiple PRs and also others can work in other sub resources if any one is interested ๐Ÿ˜. So will keep you posted on my progress so we can get it sooner in working state for all connect resources.

thornleyk commented 3 years ago

@thornleyk That looks good. I started from the instance and it's config so we are not overlapping so far ๐Ÿ˜…. I was thinking the same about tackling this project piecemeal. So we can have multiple PRs and also others can work in other sub resources if any one is interested ๐Ÿ˜. So will keep you posted on my progress so we can get it sooner in working state for all connect resources.

That sounds great, we are building new so my main focus in on contact flows and using a static instance at the moment so I think we are good from an overlap perspective, I think we have a few hurdles to get over with some of the lack of functionality in the SDK e.g. we can't create or delete an instance which makes ACC tests hard, I also have the same trouble in contact flows, I can't delete so am just renaming to ZZ_Trash. These factors to really impact ACC regression runs as the resources keep stacking up, not so bad once the resource is complete but its a pain when you are starting out as the iterations are high.

I think one thing perhaps we can start on is what the resource graph looks like e.g. how does instance and contact flow relate, what are the dependencies and what is exchanged, also naming conventions e.g. instance_id etc. I have DM'ed you linked in if you want to chat via your preferred messaging platform

Based on your presentation at invent it also looks like we have the same struggles :)

thornleyk commented 3 years ago

@abebars reading the contribution guide we should be submitting the new service and resources in stages to minimise pull request review time, reading this we should submit the service first with no resources and then follow this one resource at a time. I suggest that we do service first then your connect instance resource, then I can leverage the instance id generated by your resource in my connect flow resource. thoughts?

abebars commented 3 years ago

@abebars reading the contribution guide we should be submitting the new service and resources in stages to minimize pull request review time, reading this we should submit the service first with no resources and then follow this one resource at a time. I suggest that we do service first then your connect instance resource, then I can leverage the instance id generated by your resource in my connect flow resource. thoughts?

Sounds like a plan to me. I will get the instance PR ready soon and then will work on the config association in different PRs

zach-anthony commented 3 years ago

@abebars @thornleyk keen to collaborate as well and help out on any parts that you haven't started or provide any input for reviews. Just let me know what would be best to start on so we don't overlap

thornleyk commented 3 years ago

@abebars @thornleyk keen to collaborate as well and help out on any parts that you haven't started or provide any input for reviews. Just let me know what would be best to start on so we don't overlap

Cheers all input welcome! I'm staring from contact flow back to instance and I think @abebars is working from instance to contact flow.

I am intending on setting up some basic instance data sources based off alias so that I can hold my resource up with variable instance attributes

From there I'm looking at linking in Lex and Lambda aliases from the core instance

One thing I could help with is some idea of the full resource graph and attributes, happy to collaborate on this but would love some 3rd party input

thornleyk commented 3 years ago

Here is my current branch for the connect flow resource https://github.com/thornleyk/terraform-provider-aws/tree/f-aws_connect_contact_flow

I also have a temp branch for the connect instance resource, where the data source is going to be a dependency to the connect flow https://github.com/thornleyk/terraform-provider-aws/tree/f-aws_connect_instance

abebars commented 3 years ago

@thornleyk just drafted this PR https://github.com/hashicorp/terraform-provider-aws/pull/16709 , let me know wdyt

abebars commented 3 years ago

@thornleyk #16644 is merged and #16709 is ready. Let me know if I am missing anything. I will branch off my or to work on the other association for the instance like storage , origins , ... . I should have a PR for this by the end of the week.

thornleyk commented 3 years ago

@abebars Hey I have just created the WIP PR for Contact Flows, once your branch is merged this commit will become smaller. Would be good if you could have a review, not sure how to add reviewers in github #16854

thornleyk commented 3 years ago

@bflad would it be possible to help us move these resources along, please :) with the recent CreateQueue API's being released we are very close to having the ability to provision an entire Contact Center via Terraform (Lambdas, Lex, ConnectFlows the works) I have a number of resources waiting on the merge of https://github.com/hashicorp/terraform-provider-aws/pull/16709

nbmustafa commented 3 years ago

@gdavison and @maryelizbeth there has been a great contribution from the guys @abebars and @thornleyk to add amazon connect instance and contact follows to the terraform provider, would be awesome if their work can be reviewed. Heaps of eyes on these PRs. #16709 #16854

maryelizbeth commented 3 years ago

Hi @nashvan - Thanks for raising this! We have been keeping an eye on this request in our backlog but don't have an ETA for review at this time. Once we are able to accommodate these PRs we will reach out to the contributors and set expectations for review.

abebars commented 3 years ago

Hey @maryelizbeth , Thanks for the follow-up on this issue earlier. Any updates on the backlog if we can start at least to review these PRs that @nashvan mentioned. These are just going to be a starter. I love to commit some time to complete all available features for Connect but I want to make sure that we can fast track the process from development to review and merge instead of having a long wait period without seeing progress. thoughts?

abebars commented 3 years ago

@maryelizbeth @bflad @ewbankkit I am still not sure, How this will get prioritized, I understand itโ€™s a new resource and require some efforts but all I am looking for is a review and guidance instead of keep blocking the resource from being implemented. I am not sure what else to do or who else to ping to get a single PR reviewed!!

thornleyk commented 3 years ago

@maryelizbeth @bflad @ewbankkit I am still not sure, How this will get prioritized, I understand itโ€™s a new resource and require some efforts but all I am looking for is a review and guidance instead of keep blocking the resource from being implemented. I am not sure what else to do or who else to ping to get a single PR reviewed!!

Agreed, I have a massive amount of tech debt and queued draft resources to push through once this is merged, we are currently automating this outside tf which is a real pain

abdsahin commented 3 years ago

I am looking forward these PRs to be merged, we are doing a lot of AWS Connect projects integrated with other AWS services and tired of managing them seperately!

robertstettner commented 3 years ago

Could we please get these PRs merged. We would like this available.

abebars commented 3 years ago

@maryelizbeth @bflad @ewbankkit Just nudging you again, any thought when this could be a priority for you?

anGie44 commented 3 years ago

Hi @abebars , just dropping a note here that #16709 has been added to our queue. I don't have an exact ETA of when you'll see a complete review just yet, but the PR's status will change to "In Progress" once it's picked up.

abebars commented 3 years ago

Oh Great thanks @anGie44 for the update.

AdamTylerLynch commented 3 years ago

Update: Added to roadmap: https://github.com/hashicorp/terraform-provider-aws/blob/main/ROADMAP.md#amazon-connect

abebars commented 2 years ago

This functionality has been released in v3.60.0 of the Terraform AWS Provider.

github-actions[bot] commented 2 years ago

I'm going to lock this issue because it has been closed for 30 days โณ. This helps our maintainers find and focus on the active issues. If you have found a problem that seems similar to this, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.