Skip to content
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
18 changes: 10 additions & 8 deletions api/client/okta/okta.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,11 @@ package okta

import (
"context"
"time"

"github.com/gravitational/trace"
"github.com/gravitational/trace/trail"
"google.golang.org/protobuf/types/known/durationpb"

oktapb "github.com/gravitational/teleport/api/gen/proto/go/teleport/okta/v1"
"github.com/gravitational/teleport/api/types"
Expand Down Expand Up @@ -152,15 +154,15 @@ func (c *Client) UpdateOktaAssignment(ctx context.Context, assignment types.Okta
return resp, trail.FromGRPC(err)
}

// UpdateOktaAssignmentActionStatuses will update the statuses for all actions in an Okta assignment if the
// status is a valid transition. If a transition is invalid, it will be logged and the rest of the action statuses
// will be updated if possible.
func (c *Client) UpdateOktaAssignmentActionStatuses(ctx context.Context, name, status string) (types.OktaAssignment, error) {
resp, err := c.grpcClient.UpdateOktaAssignmentActionStatuses(ctx, &oktapb.UpdateOktaAssignmentActionStatusesRequest{
Name: name,
Status: types.OktaAssignmentActionStatusToProto(status),
// UpdateOktaAssignmentStatus will update the status for an Okta assignment if the given time has passed
// since the last transition.
func (c *Client) UpdateOktaAssignmentStatus(ctx context.Context, name, status string, timeHasPassed time.Duration) error {
_, err := c.grpcClient.UpdateOktaAssignmentStatus(ctx, &oktapb.UpdateOktaAssignmentStatusRequest{
Name: name,
Status: types.OktaAssignmentStatusToProto(status),
TimeHasPassed: durationpb.New(timeHasPassed),
})
return resp, trail.FromGRPC(err)
return trail.FromGRPC(err)
}

// DeleteOktaAssignmentremoves the specified Okta assignment resource.
Expand Down
44 changes: 16 additions & 28 deletions api/constants/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -158,41 +158,29 @@ const (
// SSHRSAType is the string which specifies an "ssh-rsa" formatted keypair
SSHRSAType = "ssh-rsa"

// OktaAssignmentActionStatusPending is represents a pending status for an Okta action.
OktaAssignmentActionStatusPending = "pending"
// OktaAssignmentStatusPending is represents a pending status for an Okta assignment.
OktaAssignmentStatusPending = "pending"

// OktaAssignmentActionStatusProcessing is represents an Okta action which is currently being acted on.
OktaAssignmentActionStatusProcessing = "processing"
// OktaAssignmentStatusProcessing is represents an Okta assignment which is currently being acted on.
OktaAssignmentStatusProcessing = "processing"

// OktaAssignmentActionStatusSuccessful is represents a successfully applied Okta action.
OktaAssignmentActionStatusSuccessful = "successful"
// OktaAssignmentStatusSuccessful is represents a successfully applied Okta assignment.
OktaAssignmentStatusSuccessful = "successful"

// OktaAssignmentActionStatusFailed is represents an Okta action which failed to apply. It will be retried.
OktaAssignmentActionStatusFailed = "failed"
// OktaAssignmentStatusFailed is represents an Okta assignment which failed to apply. It will be retried.
OktaAssignmentStatusFailed = "failed"

// OktaAssignmentActionStatusCleanupPending is represents an Okta action which needs to be cleaned up.
OktaAssignmentActionStatusCleanupPending = "cleanup_pending"
// OktaAssignmentStatusPending is represents a unknown status for an Okta assignment.
OktaAssignmentStatusUnknown = "unknown"

// OktaAssignmentActionStatusCleanupProcessing is represents an Okta action which is currently being cleaned up.
OktaAssignmentActionStatusCleanupProcessing = "cleanup_processing"
// OktaAssignmentTargetApplication is an application target of an Okta assignment.
OktaAssignmentTargetApplication = "application"

// OktaAssignmentActionStatusCleanedUp is represents an Okta action which was cleaned up successfully.
OktaAssignmentActionStatusCleanedUp = "cleaned_up"
// OktaAssignmentActionTargetGroup is a group target of an Okta assignment.
OktaAssignmentTargetGroup = "group"

// OktaAssignmentActionStatusCleanupFailed is represents an Okta action which was not cleaned up successfully. It will not be retried.
OktaAssignmentActionStatusCleanupFailed = "cleanup_failed"

// OktaAssignmentActionStatusPending is represents a unknown status for an Okta action.
OktaAssignmentActionStatusUnknown = "unknown"

// OktaAssignmentActionTargetApplication is an application target of an Okta assignment action.
OktaAssignmentActionTargetApplication = "application"

// OktaAssignmentActionTargetGroup is a group target of an Okta assignment action.
OktaAssignmentActionTargetGroup = "group"

// OktaAssignmentActionTargetUnknown is an unknown target of an Okta assignment action.
OktaAssignmentActionTargetUnknown = "unknown"
// OktaAssignmentTargetUnknown is an unknown target of an Okta assignment.
OktaAssignmentTargetUnknown = "unknown"
)

// SystemConnectors lists the names of the system-reserved connectors.
Expand Down
Loading